c++ - MALLOC_CHECK_ 不报告违规

标签 c++ malloc new-operator

我通过将其设置为 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/

相关文章:

c - 在 C 中初始化内存分配器

c++ - 私有(private)新运营商是否有任何意想不到的副作用?

c - C 中的 loadFile() 函数在执行程序时从文件加载用户

c - 在 C 中查找 malloc() 数组长度?

c++ - Thrift 客户端-服务器多重角色

C++ 程序在执行 ntdll.dll 时挂起

c++ - 关于 C++ 中自定义对象的构造函数/析构函数和新建/删除运算符

c++ - malloc: *** 对象错误:未分配正在释放的指针

c++ - 循环遍历 vector <string>并保留每个元素的 "count"时出现问题

c++ - 赋值运算符重载 : returning void versus returning reference parameter