日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

结构指针的坑之(定义结构体指针时并没有分配存储空间,所以要用malloc()申请空间)

發(fā)布時間:2025/4/5 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 结构指针的坑之(定义结构体指针时并没有分配存储空间,所以要用malloc()申请空间) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這段代碼會報錯,核心轉儲
#include<stdio.h> #include <string.h>struct role // 定義一個結構體 { // char name[100]; // 姓名int level; // 等級int HP; // 血量int MP; // 藍量int gold; // 金幣 };int main() {//struct role p; // 定義一個結構體指針//struct role *w=NULL;//w=&p;//struct role *w;char str[]="kuangzhan";// strcpy(w->name,"tom");//w->name = "teslaaa"; // 對結構體中的成員變量name進行賦值w->level = 46; // 對結構體中的成員變量level進行賦值w->HP = 3100; // 對結構體中的成員變量HP進行賦值w->MP = 3100; // 對結構體中的成員變量MP進行賦值w->gold = 475233; // 對結構體中的成員變量gold進行賦值printf("%d\n%d\n",w->HP,w->MP);return 0; }
定義結構體指針時并沒有分配存儲空間
解決方案
  • 用malloc()申請空間
  • struct role *w;w = (struct role*)malloc(sizeof(struct role));
  • 用new 直接分配空間 role *w= new role;
  • 定義一個struct,在把變量名字賦值
  • struct role p; // 定義一個結構體指針struct role *w=NULL;w=&p; #include<stdio.h> #include <string.h> #include <stdlib.h> struct role // 定義一個結構體 {char name[100]; // 姓名int level; // 等級int HP; // 血量int MP; // 藍量int gold; // 金幣 };int main() {/*一種簡單的寫法 定義一個結構體,將他的的名字付給同型的結構體指針*struct role p; // 定義一個結構體指針struct role *w=NULL;w=&p;*//* 用malloc ,來分配內存空間*struct role *w;w = (struct role*)malloc(sizeof(struct role));*///char str[]="kuangzhan";role *w= new role;strcpy(w->name,"tom");//w->name = "teslaaa"; // 對結構體中的成員變量name進行賦值w->level = 46; // 對結構體中的成員變量level進行賦值w->HP = 3100; // 對結構體中的成員變量HP進行賦值w->MP = 8100; // 對結構體中的成員變量MP進行賦值w->gold = 475233; // 對結構體中的成員變量gold進行賦值printf("%s的血量是%d\n 藍量是%d\n 金幣的數量%d",w->name,w->HP,w->MP,w->gold);//printf("s的血量是%d\n 藍量是%d\n 金幣的數量%d",w->HP,w->MP,w->gold);return 0; }

    總結

    以上是生活随笔為你收集整理的结构指针的坑之(定义结构体指针时并没有分配存储空间,所以要用malloc()申请空间)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。