struct student
{
char * name;
int score;
}stu, *pstu;
int main()
{
strcpy(stu.name, 'Jimy');
stu.score = 90;
return 0;
}
問:這段代碼有什麼錯誤?
答:定義的結構體變量stu,分配了char *類型的指針(指針變量name本身只分配了4個字節)和int類型的變量score;而nam指針並沒有指向一個合法的地址。
正確的做法是:爲name指針變量malloc一塊空間。
int main()
{
stu.name = (char *) malloc(8);
strcpy(stu.name, 'Jimy');
stu.score = 90;
return 0;
}