[英]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.