结构指针行为异常

问题描述 投票:0回答:1
    #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

c pointers linked-list structure
1个回答
0
投票

如果尝试取消引用空指针或未初始化的指针,则会出现未定义的行为。分段错误是其可能的结果之一。

© www.soinside.com 2019 - 2024. All rights reserved.