c++ - 如果我在 C++ 中使用 new 运算符分配内存块,如何在不使用方括号的情况下释放它

标签 c++

<分区>

#include <iostream>

using namespace std;

int main()
{
   int *p = new int[7];
   delete p;

   return 0;
}

我可以在 C++ 中像这样释放整个内存块吗? 提前致谢。

最佳答案

释放用 new[] 分配的数组,不带方括号 delete[] 是标准未定义的行为,这意味着它有时似乎可以工作,或者它可能会召唤恶魔有时你的 Nose 。没有编译器扩展可以对此做出额外的保证。

当你需要动态数组时使用std::vector

关于c++ - 如果我在 C++ 中使用 new 运算符分配内存块,如何在不使用方括号的情况下释放它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52071910/

相关文章:

c++ - 将字符串分成三个独立的 double

c++ - MFC中如何使标题栏快速闪烁

c++ - Win32 - 从 C/C++ 中选择目录对话框

c++ - ostream::operator<< 不与 shared_ptr 中的 operator-> 一起工作

c++ - 找到最多 k 个的最长二进制子序列的长度

c++ - 如何将 Eigen::Tensor 传播到更高维度?

c++ - gtkmm 管理/添加 vs 智能指针 :

c++ - 执行后计数器for循环错误地递增

c++ - 在 C++ 中使用 dynamic_cast 是不好的设计吗

c++ - 通过 BST 进行中缀、前缀或后缀排序以获得打印元素的降序