如何判断是内存问题
程序莫名其妙的崩溃, 堆栈有如下信息`free invalid pointer`, 基本断定是内存问题
Valgrind的使用
- 使用 -g -O0 重新编译我们的程序
- 使用valgrind启动我们的程序, 如果有内存泄漏, valgrind会告诉你源代码的行号
# 使用valgrind 启动myapp, arg是myapp的参数
valgrind myapp arg
问题修复建议
根据valgrind提示的信息,检查源代码
如果能一眼看出问题所在,那么恭喜你
如果不能,这里有几个建议的方向
- 字符串\0结尾的问题
- 数组写入越界的问题
参考资料