设为首页 加入收藏

TOP

g++ 莫名错误: malloc():memory corruption(fast)
2014-11-24 00:11:59 来源: 作者: 【 】 浏览:14
Tags:莫名 错误 malloc :memory corruption fast

用g++写了一个程序, 其中有一段是

for( i = 0 ; i< 5; i++)

push_back();

这段代码被调用了N次, 当调用一定次数后, 执行到push_back时报上面的错误, 用gdb挨个看, 最终进入 malloc.c里, 报错如下

malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.
Aborted

初步怀疑是内存泄漏, 网上说是堆空间不足了.


调试半天, 无果, 最好找以前的程序对比, 发现错误原因在


我在定义结构体时,喜欢关闭 内存对齐

#pramga pack ( push, 1 )

...定义结构体

#pargma pack ( pop ) //这句忘写了


后面的事情就发生了

摘自 ma100的专栏

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇如何定义和实现一个类的成员函数.. 下一篇宏定义printf中#的使用

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: