typedef struct node
{
char data[MAXD];
struct node* next;
}RecType1;
RecType1* p, *q;
p->next = NULL;
这里为什么报错p没有初始化啊,新手请教
{
char data[MAXD];
struct node* next;
}RecType1;
RecType1* p, *q;
p->next = NULL;
这里为什么报错p没有初始化啊,新手请教
解决方案
20
RecType1* p;
这样写仅仅是声明了一个指向RecType1对象的指针
此时p存的是个垃圾值,指向的是一块未知的内存区域
你的p->next = NULL;尝试向垃圾区域写入值,报异常了
可以写成
这样写仅仅是声明了一个指向RecType1对象的指针
此时p存的是个垃圾值,指向的是一块未知的内存区域
你的p->next = NULL;尝试向垃圾区域写入值,报异常了
可以写成
RecType1* p = NULL;
或分配空间
RecType1* p = (RecType1*)malloc(sizeof(RecType1));
10
尝试对一个未分配的内存的类型指针进行操作,编译器认为这是让他选择狗带。