有个问题想不通,求C语言高手指点

[复制链接]
查看11 | 回复2 | 2011-4-20 09:04:00 | 显示全部楼层 |阅读模式
这个函数第一次调用是成功的,如果调用两次,运行时就会出错,求高手解释是为什么?
Cards* GetCard(Cards*
srand(time(NULL));
n=1 rand()%2;
Cards *p,*del;
p=CreateCard();
p-next=c;
del=c;
while(t)
{
if(n==p-next-data-num)
{
del=p-next;
p-next=del-next;
del-next=NULL;
t=0;
if(k==0)

c=p-next;
}
else{
p=p-next;
k;}
}

return del;
}
回复

使用道具 举报

千问 | 2011-4-20 09:04:00 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">else{
p=p-next;
k;}
你的P一开始p-next=c;
但c的next的呢
没有c的next如果调用第一次p=p-next=c第二次 就是 c=c-next了 但你没有c-的NEXT 所以要报错
回复

使用道具 举报

千问 | 2011-4-20 09:04:00 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-4563949\">新手嘛,写点东西练练手~我就想知道这函数为什么用一次可以,用两次以上就报错,p=CreateCard()返回的不是NULL;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行