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