首页 > 解决方案 > 如果我在 C++ 中使用 new 运算符分配内存块,如何在不使用方括号的情况下释放它

问题描述

#include <iostream>

using namespace std;

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

   return 0;
}

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

标签: c++

解决方案


释放分配时new[]不带方括号的数组delete[]在标准上是未定义的行为,这意味着它有时可能会起作用,或者有时可能会让人联想到恶魔。没有编译器扩展对此做出额外保证。

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


推荐阅读