当我编写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)失败。
请提前帮助我修复它!
答案 0 :(得分:2)
似乎保留用于内存分配的管理已损坏。我的猜测是,在发生此错误之前,您会遇到类似缓冲区溢出的问题。
由于错误是早期问题的结果(假设我是对的),这可能是一个难以修复的问题。也许像valgrind这样的工具可以帮助您检测对内存的错误写入。如果您有一个演示此问题的小程序,我建议您将该代码添加到您的问题中。