标题:用完了临时指针,需要对它进行free之类的处理么?下次可以用在别的地方么?
只看楼主
ian116
Rank: 1
等 级:新手上路
帖 子:28
专家分:2
注 册:2009-5-15
结帖率:85.71%
已结贴  问题点数:10 回复次数:1 
用完了临时指针,需要对它进行free之类的处理么?下次可以用在别的地方么?
比如说
MailNode *temp = NULL;
MailNode *messageList = NULL;

  while (i<7)
{
if(messageList == NULL)
    messageList=temp=getNextMessage(fp);
else
{
    temp->next = getNextMessage(fp);
    temp = temp->next;
}
i++;
}
temp = NULL;


这个temp,需要想List那样free么?
另外如果不用,之后要用到相同的形式,要用到临时指针,直接temp=······就可以直接用了么?
搜索更多相关主题的帖子: 指针 free 
2009-10-09 20:49
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
得分:10 
temp不需要free,因为它不指向任何地址,最后不是有temp=NULL的代码吗?
如果在同一个有效域,可以在用temp,用完置0.

你要free只需要对链表messageList从否到位free一遍就可以了。(当然要保证getNextMessage这个函数返回的指针是动态分配的)
while(messageList != NULL)
{
temp = messageList->next;
free(messageList)
messageList = temp;
}

有什么问题可以加我QQ:780428978,请注明“C语言”



要练习算法就来http:///!!有挑战哦!!
2009-10-09 21:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-288004-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.833543 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved