gpt4 book ai didi

c - 错误(段错误核心转储)-列表和结构指针

转载 作者:行者123 更新时间:2023-11-30 21:01:04 26 4
gpt4 key购买 nike

嗨,我是 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; 上出现段错误。

关于c - 错误(段错误核心转储)-列表和结构指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37174343/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com