请大家帮看看malloc出错的问题。

byron1107 2006-08-24 04:32:56
写了个建表的东东。但一malloc完进行p->next = q;时就死掉了。不知道是为什么。
请大虾指点。谢谢。
typedef struct list *pointer;
typedef struct list
{
int data;
struct list *next;
} Klist;
typedef pointer plist;
plist createlist(plist L,int n)
{
plist p = L;
while(n > 0 )
{
plist q = (plist)malloc(sizeof(Klist));

p->next = q;
//运行到这儿就死掉了
q->next = NULL;
q->data = n;
p = p->next;

n--;
}

return L;
}
...全文
273 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
byron1107 2006-08-24
  • 打赏
  • 举报
回复
谢谢楼上。。。
丢三落四的。。 惭愧!
muroachanf 2006-08-24
  • 打赏
  • 举报
回复
while(L ->next!= NULL));//在这个地方是死循环了
{
printf("%d\n",L->data);
L = l->next;

}
byron1107 2006-08-24
  • 打赏
  • 举报
回复

谢谢楼上两位。
但这个问题解决了,却变成无限死循环了。。怎么会这样。。
请大虾再帮我看看。

plist createlist(plist L,int n)
{
plist p = L;
while(n > 0 )
{
plist q = (plist)malloc(sizeof(Klist));
q->next = NULL;
q->data = n;
p->next = q;

p = q;

n--;
}
p->next = NULL;

return L;
}
void straightlistsort(plist L)
{
createlist(L,10);

while(L ->next!= NULL));//在这个地方是死循环了
{
printf("%d\n",L->data);
}



}

plist L = (plist)malloc(sizeof(Klist));
L->next = NULL;
straightlistsort(L);
小水 2006-08-24
  • 打赏
  • 举报
回复
plist L;
L->next = NULL;
L->data = 0;
straightlistsort(L);

L没有初始化就使用了。


Klist L;
L.next = NULL;
L.data = 0;
straightlistsort(&L);
createlist(&L, n);

或者:
plist L;
L=(plist)malloc(sizeof(Klist));
L->next = NULL;
L->data = 0;
straightlistsort(L);
createlist(L, n);

对楼上的总结
yingge 2006-08-24
  • 打赏
  • 举报
回复
plist L;
L->next = NULL;
L->data = 0;

不行的,你只申请了指针,没有申请指针指向的内存空间,应该

plist L;
L=(plist)malloc(sizeof(Klist));
L->next = NULL;
L->data = 0;

或者像楼上那样。
冷血孤剑 2006-08-24
  • 打赏
  • 举报
回复
不是初始化的问题,而是有没有确保指针指向的内存。
比如,不能这样定义:plist l,然后createlist(l,n);
而要,定义Klist l,然后createlist(&l,n);

byron1107 2006-08-24
  • 打赏
  • 举报
回复
plist L;
L->next = NULL;
L->data = 0;
straightlistsort(L);

调用时是这样的,但是不行。
m_nNightmire 2006-08-24
  • 打赏
  • 举报
回复
如果传进来的L没有经过初始化,那的确会死掉
yingge 2006-08-24
  • 打赏
  • 举报
回复
单这个函数没有什么问题啊,代入的时候L指向的空间初始化了没有?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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