为使用malloc分配空间时报错,错误代码如下:
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 & 0×1) && ((unsigned long)old_end & pagemask) == 0)’ failed.
在程序中,由于越界使用了上一次malloc(或new)分配的空间,导致本次分配出错。检查一下上一次调用malloc(或new)的空间是否正确使用。
本文解析了一个具体的malloc使用错误案例,详细介绍了错误发生的原因在于越界使用了上一次malloc分配的空间,并给出了排查建议。
905

被折叠的 条评论
为什么被折叠?



