标题:double free or corruption 到底可能是哪些原因造成!?
只看楼主
leinchu
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-4-2
结帖率:0
已结贴  问题点数:20 回复次数:1 
double free or corruption 到底可能是哪些原因造成!?
*** glibc detected *** double free or corruption (???)

我的socket服务程序总是开了多线程就会遇到这个错误,而且总是运行了比较长的时间才出现,我的free重新定义过了(不知道怎么描述)

#define free(p)  do {                                                   \
        printf("%s:%d:%s:free(0x%lx)\n", __FILE__, __LINE__,            \
            __func__, (unsigned long)p);                                \
        free(p);                                                        \
} while (0)

但是出错的附近根本没有free操作,

我想请问,
1 除了free之外,到底什么操作还可能造成这个东西?
2 double free or corruption (???),括号里面的fasttop , top 一类的有什么区别?


:em21: 非常感谢!
搜索更多相关主题的帖子: free double corruption 
2010-04-02 09:56
awpawp
Rank: 2
等 级:论坛游民
帖 子:15
专家分:40
注 册:2009-6-21
得分:20 
总是运行了比较长的时间才出现???这个可能是因为内存占用了却没有释放,尤其是在多线程编程的时候,更应该注意在一个线程结束后要记得销毁内存空间,不然肯定会在程序运行一段时间之后出现问题
2010-04-02 15:03



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




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

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