作者supercygnus (......)
看板Programming
标题[问题] C++ 链结串列跑不出来,快崩溃
时间Sun Aug 19 22:07:12 2012
#include<iostream>
using namespace std;
struct Node{
int data;
Node *link;
};
void addNewNode(Node *,int);
void listAll(Node *);
int main(void){
int i,x;
Node *head=NULL;
for(i=1;i<=3;i++){
cin>>x;
addNewNode(head,x);
}
listAll(head);
system("pause");
return 0;
}
void addNewNode(Node *ptr,int x){
Node *pNewNode=new Node;
pNewNode->data=x;
pNewNode->link=NULL;
if(NULL==ptr){
ptr=pNewNode;}
else{
Node *pTailNode=ptr;
while(pTailNode->link!=NULL){
pTailNode=pTailNode->link;
}
pTailNode->link=pNewNode;
}
}
void listAll(Node *ptr){
while(ptr->link!=NULL){
cout<<ptr->data<<" ";
ptr=ptr->link;
}
}
以上是我的程式码,compile没有错,但是输入三个数字之後就当机了
没办法 listAll 为什麽-.- 我觉得没有写错
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.253.192.142
1F:推 wrltertnnn:写错 60.246.169.41 08/19 22:28
2F:→ supercygnus:请问哪里错了,拜托帮解一下,谢 111.252.242.47 08/19 22:36
3F:→ saxontai:你的程式在跑完 addNewNode 後,head 依 114.43.248.198 08/19 23:54
4F:→ saxontai:然是指向 NULL 的。 114.43.248.198 08/19 23:54
5F:→ supercygnus:ptr=pNewNode不就是把head指向新结点? 111.252.242.47 08/20 00:11
6F:→ supercygnus:怎会说还指向NULL ? 111.252.242.47 08/20 00:11
7F:→ saxontai:不信就印出来看啊。 114.43.248.198 08/20 00:15
8F:推 nienting:逻辑上除了listAll不会把最後一个值印出 219.68.131.221 08/20 00:19
9F:→ nienting:之外,逻辑是没错的,错在对於传值和传址 219.68.131.221 08/20 00:20
10F:→ nienting:的不了解。 addNewNode的参数宣告错误 219.68.131.221 08/20 00:21
11F:推 EdisonX:错惨了...addNewNode 会 mem leak 180.177.76.161 08/20 00:50
12F:→ TsinTa:你应该去看C_C++板置底文第13戒 140.114.55.27 08/20 13:44