| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 713 人关注过本帖
标题:头想破了也想不通的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
快速回复:头想破了也想不通的FREE()用法问题,(谢谢各位热心帮助,小弟已解决了,方 ...
数据加载中...
 
   



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

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