C语言:结构体中的指针初始化的注意点
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student{
char *name;
int score;
struct student* next;
}stu,*stu1;
int main()
{
/* 1.结构体成员指针需要初始化 */
stu.name = (char *)malloc(sizeof(char));
strcpy(stu.name,"Jimy");
stu.score = 99;
/* 2.结构体指针需要初始化 */
stu1 = (struct student *)malloc(sizeof(struct student));
/* 3.结构体指针的成员指针同样需要初始化 */
stu1->name = (char *)malloc(sizeof(char));
stu.next = stu1;
strcpy(stu1->name,"Lucy");
stu1->score = 98;
stu1->next = NULL;
printf("name %s, score %d /n ",stu.name, stu.score);
printf("name %s, score %d /n ",stu1->name, stu1->score);
free(stu1);
return 0;
}
以上代码中有三处需要注意:
1.结构体成员指针需要初始化;
2.结构体指针需要初始化;
3.结构体指针的成员指针同样需要初始化;