QT调查内存泄漏方法
QT调查内存泄漏方法环境搭建安装虚拟机安装valgrindsudo apt-get install valgrind安装qt使用方法打开qtcreator创建main.cpp#include <iostream>void badpointer(int* ip, int n){ip = new int[n];delete ip;}int main(int argc, char *argv
·
QT调查内存泄漏方法
环境搭建
- 安装虚拟机
- 安装
valgrind
sudo apt-get install valgrind
- 安装qt
使用方法
- 打开
qtcreator
- 创建main.cpp
#include <iostream>
void badpointer(int* ip, int n){
ip = new int[n];
delete ip;
}
int main(int argc, char *argv[])
{
int* p;
int num(4);
badpointer(p, num);
return 0;
}
- 运行菜单栏Analyze-Valgrind Memory Analyzer
- 结果,证明内存泄漏
另一个例子
下面的例子存在数组越界,内存泄漏,k没有初始化
#include <iostream>
int badpointer(int k){
int* p = new int[3];
p[0] = k;
return p[3];
}
int main(int argc, char *argv[])
{
int* p;
int num(4), k;
//std::cout<<p[num-1]<<std::endl;
std::cout<<badpointer(k)<<std::endl;
return 0;
}
- 结果
更多推荐
已为社区贡献1条内容
所有评论(0)