#include<stdio.h>
struct stu
{
int roll;
struct stu *next;
}stu1;
int main(){
stu1.roll = 1;
struct stu *head = &stu1; // Question about this line
head->next = &stu1;
printf("Head->Next : %p", head->next);
printf("\nAddress of stu : %p", &stu1);
return 0;
}
因此,我声明指向结构的头指针的行,当我将其分配为
struct stu * head = &stu1;
时,它运行良好,整个程序运行良好,但是当我写 struct stu * head;
或 struct stu * head = NULL;
时,程序显示分段错误。
我不明白它们和 ig 在使用链表时有什么区别,我必须将 head 指定为
Head->next = headnode
而不是 Head = &Headnode
。
如果尝试取消引用空指针或未初始化的指针,则会出现未定义的行为。分段错误是其可能的结果之一。