标签: c memory memory-leaks
我想知道为什么在执行./a.out后随机我会得到以下内容。我有什么想法我做错了吗?感谢
http://img710.imageshack.us/img710/8708/trasht.png http://img710.imageshack.us/img710/8708/trasht.png
http://img710.imageshack.us/img710/8708/trasht.png
答案 0 :(得分:2)
由于错误提示您可能有 double free()或堆损坏
编辑:您要么多次释放同一个缓冲区,要么在不应该写入的内存区域中写入字节。后者可能是由于在释放缓冲区之后写入缓冲区或在缓冲区边界外写入而引起的。
也许Memcheck可以帮助查明问题。
使用调试信息cc -g编译您的程序并运行valgrind ./a.out
cc -g
valgrind ./a.out