結構體成員指標使用要點

2021-07-10 03:53:22 字數 452 閱讀 5538

struct student

char * name;

int  age;

}stu, *pstu;

int main()

strcpy(stu.name, 'zhangsan');

stu.age = 20;

return  0;

問:這段**有什麼錯誤?

答:定義的結構體變數stu,分配了char *型別的指標

(指標變數name本身只分配了4個位元組)和int型別的變數age;而nam指標並沒有指向乙個合法的位址。

正確的做法是:為name指標變數malloc一塊空間。

int main()

stu.name = (char *) malloc(10);

strcpy(stu.name, 'lisi');

stu.age = 20;

return  0;

結構體指標訪問成員

結構體指標訪問成員 include struct student int main p stu1 printf 學號 t姓名 t分數 n printf d t s t 0.1f n p num,p name,p score 2.該種方法是定義乙個指標變數,只指向乙個struct student的結構...

函式指標作為結構體的成員

我發乙個執行過的原始碼。在.h檔案中,有如下 tvm控制狀態 typedef struct m tvm ctrl m tvm ctrl extern m tvm ctrl tvm ctrl 控制器 在.c檔案中,有如下 tvm主控制器 m tvm ctrl tvm ctrl 控制器 get coin...

結構體成員 陣列或指標

c語言中沒有字串型別,只能使用字元陣列表示字串。當定義結構體時,成員是字元陣列時,在外部給該成員賦值,不能使用 結構體把變數名.成員名 ssss 直接列印輸出結構體成員陣列名,輸出的是位址。可以使用字串函式 strcpy 給字元陣列 相當於字串 複製乙個字串。struct student4 使用這種...