如果我想在C++中动态创建一个int数组,然后在以后删除它,我是否需要null终止int数组?如果是这样,我该怎么办?如果没有,计算机如何知道要释放多少内存?
int *array = new int[x];
..do some stuff..
delete array;
Run Code Online (Sandbox Code Playgroud)
我知道对于一个char数组,它会删除一个空字符('\ 0'),如果你的字符串中没有终止空字符,你可能会得到内存冲突错误,但这是如何应用于整数数组的(和其他数组一样,结构数组)?
数组使用的内存块中有一些额外的数据,这些数据对程序来说是不可见的,它可以delete说明块的大小.
你对char数组的看法是不正确的,顺便说一下- NUL终结符的存在与之无关delete- 它使用隐藏的块大小就像任何其他内存块一样.
(顺便说一句,你应该说delete [] array;当你删除数组时.)
| 归档时间: |
|
| 查看次数: |
1899 次 |
| 最近记录: |