malloc.c:3074错误?

时间:2009-07-08 13:13:49

标签: c memory malloc

当我编写C程序时,遇到了如下问题:

  

malloc.c:3074:sYSMALLOc:断言   (old_top ==(((mbinptr)(((char *)   &((av) - > bins [((1) - 1)* 2])) -   __builtin_offsetof(struct malloc_chunk,fd))))&& old_size == 0)   || ((unsigned long)(old_size)> =   (无符号长)(((__ 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)失败。

请提前帮助我修复它!

1 个答案:

答案 0 :(得分:2)

似乎保留用于内存分配的管理已损坏。我的猜测是,在发生此错误之前,您会遇到类似缓冲区溢出的问题。

由于错误是早期问题的结果(假设我是对的),这可能是一个难以修复的问题。也许像valgrind这样的工具可以帮助您检测对内存的错误写入。如果您有一个演示此问题的小程序,我建议您将该代码添加到您的问题中。