识别指针处理方式中的错误

Identify error in how the pointers are handled

本文关键字:错误 方式中 处理 指针 识别      更新时间:2023-10-16

这个问题希望我确定如何处理指针的错误。我尝试编译它,但它没有给出任何错误。

#include <iostream>
using namespace std;
int main()
{
  int *ptr = new int;
  int *ptr2 = ptr;
  delete ptr;
  ptr = NULL;
  return 0;
}

我想你想念"int main(("行

#include <iostream>
using namespace std;
int main()
{
   int *ptr = new int;
  int *ptr2 = ptr;
  delete ptr;
  ptr = NULL;
  return 0;
}

如果你把你的代码放在一个main方法中并编译它valgrid不会给你任何错误。你在找什么?

瓦尔格林德 --泄漏检查=完整 ./a.out

==22277== 内存错误检测器

==22277== 版权所有 (C( 2002-2013,和 GNU GPL'd,由 Julian Seward 等人提供。

==22277== 使用 Valgrind-3.9.0 和 LibVEX;使用 -h 重新运行以获取版权信息

==22277== 命令: ./a.out

==22277==

==22277==

==22277== 堆摘要:

==22277== 退出时使用:0 块中的 0 字节

==22277== 堆总使用量:1 个分配、1 个释放、4 个字节分配

==22277==

==22277== 释放了所有堆块 -- 不可能泄漏

==22277==

==22277== 对于检测到和禁止显示的错误计数,请重新运行:-v

==22277== 错误摘要:0 个上下文中的 0 个错误(禁止显示:6 个上下文中的 8 个(