我通过将其设置为 1 启用了 MALLOC_CHECK_
(也尝试使用 2 和 3)但是我没有看到它报告以下 c++ 程序的任何问题:
int n = atoi(argv[1]);
std::cout<<"n = "<<n<<std::endl;
char *buf = new char[n];
for (int i = 0;i < n*n; i++)
{
buf++;
*buf = 'x';
}
std::cout<<"done"<<std::endl;
我是不是漏掉了什么?
最佳答案
最后尝试调用“删除”。对我来说,gcc 只有在最后调用“free”时才开始标记错误。也许是实现细节。
关于c++ - MALLOC_CHECK_ 不报告违规,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13498497/