簡體   English   中英

錯誤(分段錯誤核心已轉儲)- 列表和結構指針

[英]Error (segmentation fault core dumped) - List and struct pointer

嗨,我是 C 編程的初學者; 我正在嘗試學習列表和指向結構的指針。 這是我的程序,使用指針在元素之后實現列表元素。 有人能告訴我為什么它給我錯誤分段錯誤核心轉儲嗎?

#include<stdio.h> 
#include<stdlib.h> 

struct ListNode{ 
    int x; 
    struct ListNode* nextPtr; 
}; 

typedef struct ListNode ListNode; 
typedef ListNode* ListNodePtr; 

void insert(ListNodePtr* sPtr, int n); 

int main() 
{ 
    int f; 

    scanf("%d", &f); 
    ListNodePtr startPtr=NULL; 

    while(f!=-1) 
    { 
        insert(&startPtr, f); 

        scanf("%d",&f); 
        printf("/n"); 
    } 

    return 0; 
} 

void insert(ListNodePtr* sPtr, int n) 
{ 
    ListNodePtr newPtr; 

    newPtr=malloc(sizeof(ListNode)); 

    if(newPtr!=NULL) 
    { 
        newPtr->x=n; 
        newPtr->nextPtr=NULL; 
    } 

    ListNodePtr q,w; 

    q=*sPtr; 
    w=q->nextPtr; 

    while(w!=NULL) 
    { 
        q=w; 
        w=q->nextPtr; 
    } 

    w=newPtr; 
}

第一次通過您的插入:

q=*sPtr; 
w=q->nextPtr; 

*sPtr等於 NULL。 您正在取消引用它,這將導致q->nextPtr;上的段錯誤q->nextPtr; .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM