內存泄露——結構體成員指針未初始化

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;

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章