求助。C写的单链表 ,输出最后总会带一个-842150451,查了好久也不知道错哪

qq409644010 2015-11-30 10:38:27
#include "iostream"
#include "string"

using std::cin;
using std::cout;
using std::endl;
#define NULL 0

typedef struct Node
{
int data;
struct Node *next;
}Node;
typedef struct Node *LinkList;

LinkList CreatListHead(LinkList *L,int n)
{
int i=0,temp=0;
LinkList p;
(*L)=(LinkList)malloc(sizeof(Node));
(*L)->next=NULL;
for(i=0;i<n;i++)
{
p=(LinkList)malloc(sizeof(Node));
cin>>temp;
p->data=temp;
p->next=(*L)->next;
(*L)->next=p;
}
return *L;
}

int main()
{
LinkList L,p;
p=CreatListHead(&L,10);

while(p!=NULL)
{

cout<<p->data<<" ";
p=p->next;
}

}
...全文
577 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq409644010 2015-12-03
  • 打赏
  • 举报
回复
引用 楼主 qq409644010 的回复:
#include "iostream" #include "string" using std::cin; using std::cout; using std::endl; #define NULL 0 typedef struct Node { int data; struct Node *next; }Node; typedef struct Node *LinkList; LinkList CreatListHead(LinkList *L,int n) { int i=0,temp=0; LinkList p; (*L)=(LinkList)malloc(sizeof(Node)); (*L)->next=NULL; for(i=0;i<n;i++) { p=(LinkList)malloc(sizeof(Node)); cin>>temp; p->data=temp; p->next=(*L)->next; (*L)->next=p; } return *L; } int main() { LinkList L,p; p=CreatListHead(&L,10); while(p!=NULL) { cout<<p->data<<" "; p=p->next; } }
谢谢,是这样的,但是最后又会多一个99. 我后来把return *L改成return p; OK了
qq409644010 2015-12-03
  • 打赏
  • 举报
回复
引用 1 楼 infoworld 的回复:
链表头的data没赋值却打印.

#include "iostream"
#include "string"
#include <stdlib.h>

using std::cin;
using std::cout;
using std::endl;

typedef struct Node
{
int data;
struct Node *next;
}Node;
typedef struct Node *LinkList;

LinkList CreatListHead(LinkList *L,int n)
{
int i=0,temp=0;
LinkList p;
(*L)=(LinkList)malloc(sizeof(Node));
(*L)->next=NULL;
(*L)->data=99;
for(i=0;i<n;i++)
{
p=(LinkList)malloc(sizeof(Node));
cin>>temp;
p->data=temp;
p->next=(*L)->next;
(*L)->next=p;
}
return *L;
}

int main()
{
LinkList L,p;
p=CreatListHead(&L,10);

while(p!=NULL)
{  

cout<<p->data<<" ";
p=p->next;
}

}
谢谢,是这样的,但是最后又会多一个99. 我后来把return *L改成return p; OK了
上弦月t 2015-12-01
  • 打赏
  • 举报
回复
是溢出了吗?
Huppert 2015-12-01
  • 打赏
  • 举报
回复
函数CreatListHead 中 L的data没有赋值
  • 打赏
  • 举报
回复
链表头的data没赋值却打印.

#include "iostream"
#include "string"
#include <stdlib.h>

using std::cin;
using std::cout;
using std::endl;

typedef struct Node
{
int data;
struct Node *next;
}Node;
typedef struct Node *LinkList;

LinkList CreatListHead(LinkList *L,int n)
{
int i=0,temp=0;
LinkList p;
(*L)=(LinkList)malloc(sizeof(Node));
(*L)->next=NULL;
(*L)->data=99;
for(i=0;i<n;i++)
{
p=(LinkList)malloc(sizeof(Node));
cin>>temp;
p->data=temp;
p->next=(*L)->next;
(*L)->next=p;
}
return *L;
}

int main()
{
LinkList L,p;
p=CreatListHead(&L,10);

while(p!=NULL)
{  

cout<<p->data<<" ";
p=p->next;
}

}

64,681

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧