c++ - 如果我在不删除第一个内存的情况下使用指针创建新内存会发生什么

标签 c++ pointers new-operator

如果我有一个已经用于创建new[] 内存的指针。 然后在不删除第一个 on 或将其设置为 nullptr 的情况下再次使用它,到底发生了什么?编译器会自行删除第一个还是内存变得不可访问?

最佳答案

您之前分配的缓冲区仍由您的进程拥有,但无法访问(因为您不再跟踪其指针),并且您无法释放它。它将保持分配状态,直到程序终止。 这就是所谓的 memory leak .

关于c++ - 如果我在不删除第一个内存的情况下使用指针创建新内存会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44074130/

相关文章:

c - C 中带索引的指针和数组

pointers - 使用pointer_from_objref() 和Ref() 的正确方法是什么?

javascript - 构造函数可以返回什么值来避免返回 this?

c++ - PostgreSQL 和 C++ - 比较日期

c# - 在 C# 中使用 C++ 引用中的引用从 C# 错误调用 C++ 代码

c++ - 函数坏指针运行时错误?

c++17:至少必须替换哪些版本的全局运算符 new/delete 以覆盖所有情况?

JavaScript 避免使用 new 关键字

c++ - Mel-filterbank系数的计算公式

c++ - 使用 openmp 并行 for_each