【发布时间】:2016-09-07 13:05:57
【问题描述】:
您好,我是 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;
}
【问题讨论】:
-
OP 你为什么回滚我所做的编辑以使代码更易于阅读?
-
因为谁真的想要缩进和语法高亮? :P
-
@MichaelDorgan pffftttt 撤消回滚以恢复缩进和语法突出显示..:P 干得好!
-
是的,你知道。老实说,我一直在等待 OP 通过再次回滚来欺骗我们……
-
是的,我知道你的意思,以为 OP 通过回滚来欺骗我! xD
标签: c list pointers struct segmentation-fault