c++ - 删除指针内存并确认

标签 c++ qt pointers memory-management

考虑以下因素:

tbModelHFrame = new TbModelHeaderFrame(this, storage->getDataBase());

我想删除 tbModelHFrame 内存的正确方法是

delete tbModelHFrame;

对吧?

如何检查内存是否真的被释放了?

最佳答案

How do I check that the memory was really released?

你不知道。

C++ 无法判断指针是指向有效对象还是指向内存中的随机区域。后者包括一个在某个时候有效但此后已被删除的区域。

由开发人员以一种不会发生这种情况的方式组织他们的代码。

该语言为您提供帮助的唯一保证是 delete 调用永远不会失败。因此,如果您对该对象调用一次 delete,您可以合理地确定该对象已正确销毁并释放了内存。只是不要在之后再次尝试访问它,否则你会遇到麻烦。

关于c++ - 删除指针内存并确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31268499/

相关文章:

c++ - 加载图像大约 500 次后,此错误显示在 visual studio QImage : out of memory, returning null image

python - Qt: session 管理错误:不支持指定的身份验证协议(protocol)。在 Linux 上使用 Python 套接字时

c - 使用指针作为函数参数读取并显示姓名和年龄

c++ - 通过 boost build 链接到 OS X 框架

c++ - 如何检查 LLVM StoreInst 的目标是否为函数指针

c++ - OnComponentBeginOverlap.AddDynamic 表示函数模板没有实例与参数列表匹配?

在 std::string 上使用 malloc/realloc/free 时出现 C++ 内存错误

c++ - QLabel 占用完整空间

创建一个全局字符指针

c - 如何访问 C 中结构中索引处的元素?