标题:头想破了也想不通的FREE()用法问题,(谢谢各位热心帮助,小弟已解决了,方法内 ...
只看楼主
空明七心
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-3-18
 问题点数:0 回复次数:3 
头想破了也想不通的FREE()用法问题,(谢谢各位热心帮助,小弟已解决了,方法内附)
头想破了也想不通的FREE()用法问题,


谢谢各位热心帮助,小弟已解决了 :)


原来是该字节点被三个行节点所引用,在被FREE后,FREE第二行时又要FREE此不存在了的字节点,所以出错!!!

chnodeptr和chnode9是二个同类型结点, 每个结点里面有二部分,其一是一个字符, 其二是下一个该类结点的地址.
以下程序运行时一切正常:
while (chnodeptr->nextch != NULL)
{ chnode9 = chnodeptr;
printf("%d", chnode9);
chnodeptr = chnodeptr->nextch;
}

可是加入一句:

while (chnodeptr->nextch != NULL)
{ chnode9 = chnodeptr;
printf("\n%d\n", chnode9);
chnodeptr = chnodeptr->nextch;
free(chnode9);
}

就出错了,截图如下:



请高手教我如何解决啊!!!!

[此贴子已经被作者于2006-4-8 21:53:32编辑过]

搜索更多相关主题的帖子: FREE 内附 用法 热心 
2006-04-08 19:41
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 
你怎么new的?

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-04-08 19:45
空明七心
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-3-18
得分:0 

附上我的源代码:
int FileDeleteLine(FileADT* fileADT, int line)
{
LINENODE * linenodeptr;
LINENODE * linenode = NULL;
int i=0, k=0;
CHNODE * chnodeptr = NULL;
CHNODE * chnode = NULL;
CHNODE * chnode9 = NULL;

linenodeptr = fileADT->line1;
// printf("%d", line);
while( linenodeptr != NULL && i < (line-1) )
{
linenodeptr = linenodeptr->nextline;
i++;
}

linenode = linenodeptr->nextline;

if (linenode != NULL)
{linenodeptr->nextline = linenode->nextline;
chnodeptr = linenode->chhead;

while (chnodeptr->nextch != NULL)
{ chnode9 = chnodeptr;
printf("\n%d\n", chnode9);
chnodeptr = chnodeptr->nextch;
free(chnode9);
}
}
free( linenode );
//printf("\nfiledeletei processing\n");

return 0;
}

[此贴子已经被作者于2006-4-8 19:49:42编辑过]

2006-04-08 19:46
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 
噢,是calloc

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-04-08 19:47



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




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

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