c++ - 如果我在 C++ 中使用 new 运算符分配内存块,如何在不使用方括号的情况下释放它
问题描述
#include <iostream>
using namespace std;
int main()
{
int *p = new int[7];
delete p;
return 0;
}
我可以在 C++ 中像这样释放整个内存块吗?提前致谢。
解决方案
释放分配时new[]
不带方括号的数组delete[]
在标准上是未定义的行为,这意味着它有时可能会起作用,或者有时可能会让人联想到恶魔。没有编译器扩展对此做出额外保证。
std::vector
当您需要动态数组时使用。
推荐阅读
- python - 扩展基本 html 问题
- mongodb - 如何将 mongodb 输入查询添加到投影结果?
- redis - 某些键空间过期事件未触发(Redis)
- python - Python 中的 Dijkstra 算法耗时太长
- javascript - 如何在同一/当前设置固定位置?
- cuda - 优化我的 Cuda 内核以对火炬张量内的不同索引范围求和
- javascript - 无法读取未定义的属性 scrollIntoView
- python-3.x - Azure Databricks,Python - 将 json 列字符串转换为数据框
- unix - 在第二个文件中的列之后添加一个文件中的列,同时考虑到两个文件具有不同的列数
- jquery - 在用逗号分隔的文本区域中的每个输入值上追加一行 jQuery(代码优化需要)