最近在写代码的时候, 发现了极其严重的内存泄漏. 娄神帮我找bug时, 使用了valgrind这个软件. Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具.
下面解析一些常见的错误 :
- 1.
==3185== Use of uninitialised value of size 8
==3185== at 0x108602: main (a.c:6)
这种情况是很常见的, 原因是使用了未初始化的的地址, 这时候应该查看一下程序是否使用了未初始化的指针
2.
==3223== Invalid write of size 4
==3223== at 0x108602: main (a.c:6)8
==3223== Address 0x0 is not stack’d, malloc’d or (recently) free’d
这个错误原因是往错误的地址写入值, 这时候我们也应该查看一下程序用未初始化的指针赋值, 或者指针未被赋值.
和这个错误相对应的, 还有Invalid read of size 4错误提示.
- 3.
==3397== Conditional jump or move depends on uninitialised value(s)
==3397== at 0x108656: main (in /home/ciaiy/Desktop/codingSpace/c/free/a)