C 错误(分段错误核心转储)-列表和结构指针
嗨,我是C编程的初学者;我试图学习列表和指向结构的指针。在这里,我的程序使用指针一个接一个地实现一个列表元素。有人能告诉我为什么它会给我错误分割错误吗C 错误(分段错误核心转储)-列表和结构指针,c,list,pointers,struct,segmentation-fault,C,List,Pointers,Struct,Segmentation Fault,嗨,我是C编程的初学者;我试图学习列表和指向结构的指针。在这里,我的程序使用指针一个接一个地实现一个列表元素。有人能告诉我为什么它会给我错误分割错误吗 #include<stdio.h> #include<stdlib.h> struct ListNode{ int x; struct ListNode* nextPtr; }; typedef struct ListNode ListNode; typedef ListNode* Lis
#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;
}
#包括
#包括
结构ListNode{
int x;
结构列表节点*nextPtr;
};
类型定义结构ListNode ListNode;
typedef ListNode*ListNodePtr;
无效插入(ListNodePtr*sPtr,int n);
int main()
{
int f;
scanf(“%d”、&f);
ListNodePtr startPtr=NULL;
而(f!=-1)
{
插入(&startPtr,f);
scanf(“%d”、&f);
printf(“/n”);
}
返回0;
}
无效插入(ListNodePtr*sPtr,int n)
{
ListNodePtr-newPtr;
newPtr=malloc(sizeof(ListNode));
如果(newPtr!=NULL)
{
newPtr->x=n;
newPtr->nextPtr=NULL;
}
ListNodePtr q,w;
q=*sPtr;
w=q->NEXTPTTR;
while(w!=NULL)
{
q=w;
w=q->NEXTPTTR;
}
w=新PTR;
}
首次插入时:
q=*sPtr;
w=q->nextPtr;
*sPtr
等于NULL。您正在解除引用,这将导致q->nextPtr上的seg故障代码>OP为什么要回滚我所做的编辑以使代码更易于阅读?因为谁真正想要缩进和语法突出显示P@MichaelDorganpffftttt撤消回滚以恢复缩进和语法高亮显示..:干得好!是的,你知道。老实说,我一直在等待OP通过再次回滚来控制我们俩……是的,我知道你的意思,我想OP通过回滚来控制我!除息的