这个C++链表的程序一运行就出错错在哪里,请高手指正

#include<iostream.h>
#include<stdlib.h>
typedef struct Node
{
int data;
struct Node *next;
}node;

main()
{
node *head, *p, *s,*a,*q;

head = (node *)malloc(sizeof(node));
head->next=NULL;
p=head;

for(int j=0;j<10;j++)
{
s= (node *)malloc(sizeof(node));
cin>>(s->data);
s->next=p->next;
p->next=s;
p=s;
}
p=head->next;
while(p!=NULL)
{
cout<<p->data;
p=p->next;
}

p=head; //定位查找
for(int i=0;(i<3&&q->next!=NULL);i++)
p=p->next;
a=(node *)malloc(sizeof(node));
a->data=9;
a->next=p->next;
p->next=a;

p=head->next;
while(p!=NULL)
{
cout<<p->data;
p=p->next;
}

}

for(int i=0;(i<3&&q->next!=NULL);i++) / /这里的q你错了,改成p就好了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-10
变量的命名最好是有意义的,调试的时候也好办

c++ 链表,,求指导,程序崩溃,line:1044
1.链表的最后一个节点的next的值,是否设置为NULL了,如果没有设置,到了最后一个节点的时候,就会出现崩溃.2.你的链表中的每个节点的next值,是否都对了,如果有任一个节点的next没有指向有用的节点的话,就会访问不被允许访问的内存,导致崩溃.3.考虑下在进入循环的第一次是否就有问题,因为循环里,并没...

C++数据结构单链表出现Compiling.Error spawning cl.exe什么意思_百度知...
你可以到相应的路径下找到这个应用程序。因此问题可以按照以下方法解决:打开vc界面 点击VC“TOOLS(工具)”—>“Option(选择)”—>“Directories(目录)”重新设置“Excutable Fils、Include Files、Library Files、Source Files”的路径。很多情况可能就一个盘符的不同 (例如你的VC装在C,但是这些路径...

c++ 链表,,求指导,程序崩溃,line:1044
链表的最后一个节点的next的值,是否设置为NULL了,如果没有设置,到了最后一个节点的时候,就会出现崩溃.你的链表中的每个节点的next值,是否都对了,如果有任一个节点的next没有指向有用的节点的话,就会访问不被允许访问的内存,导致崩溃.考虑下在进入循环的第一次是否就有问题,因为循环里,并没有判断p...

C++程序,为什么编译通过了,执行时却出现错误
编译通过是因为你没有语法问题,运行出错是你的程序有逻辑问题,空指针,内存漏洞等程序问题

C++编了一个简单的链表节点模版,运行时显示error lnk2019 无法解析的外 ...
不要把头文件和实现文件分开,也就是说,你把所有代码都放在一个文件里面。不要把类的声明和定义放在h中,又把成员函数的实现放在cpp 中。全部都放在一起,叫cpp或者hpp 就好。visual studio 对模板的分离编译不是很好,就出现连接错误。参考资料:个人经验 ...

C++链表问题 总是存在这么一个错误:error C2601: 'Add_word' : loca...
检查下你这个函数的定义是不是放在了另一个函数的内部了?(上下寻早{与}是否漏缺```)这个错误一般都是这样的问题、

C++ builder程序运行的时候出这个错误?
列表控件的下标越界了,或者是错误的引用了列表控件的行,单步运行一下,看看错误的位置,修改一下吧!

C++链表合并编译正确,运行完跳出终止调试程序的框框
虽然与原来的A,b是不同的A,B,但后面那些节点地址相同,析构以后链表后面所有节点都释放掉了 然后返回原函数,函数结束后会自动析构A,B,因为这时候first!=NULL(因为是值传递!)又会发生地first指向内存的删除,而那段内存已经删除,就会内存错误 至于怎么改,把值传递改成引用传递即可 ...

C++编译连接都通过了,可是运行时却莫名其妙终止了~
是逻辑问题,你的指针 指到了非法的区域。调试下你的指针移动吧。--- 这个需要结合你的程序调试。在Debug模式下 看究竟是哪个指针错了。然后再反推……

运行c++程序时出现.exe已停止工作
发现你程序中最致命的错误有2个地方:1.main函数中 --- struct student *pt,*head;pt=creat();print(head);--- 你creat函数返回的头指针应该赋值给head吧,,然后才能print(head)2.print函数中 --- printf("%nNow,these%d records are:\\n",n);--- n 导致了程序的运行崩溃,,你应该是...

相似回答