malloc错误:校验和错误

时间:2018-05-02 08:53:00

标签: c malloc

我在C中编码并收到带有错误消息的malloc错误:

malloc: *** error for object 0x7fe9d44026d8: incorrect checksum for freed object - object was probably modified after being freed. 
*** set a breakpoint in malloc_error_break to debug

我的代码的目标是将生成的迷宫从使用read()函数存储迷宫的字符串存储到2D数组中。我在将迷宫读入字符串时遇到问题,但是当我将字符串,行数和列数作为参数传递给函数时

这个malloc错误究竟是什么意思?如何确定我的代码的哪一部分正在创建此错误?

1 个答案:

答案 0 :(得分:4)

malloc()的实现会执行C语言标准不需要的其他检查。在这种情况下,它似乎检测到内存块中的某些数据被修改后被标记为空闲(通过调用free())。这是你程序中的一个错误。

要查找罪魁祸首,请使用内存调试工具。对于* nix系统,有valgrind。在Windows上,您可以使用drmemory。这些工具取代了标准库的内存管理功能,并会立即通知您有关写入已经free() d的内存的错误。