gpt4 book ai didi

c++ - 空终止 int 数组

转载 作者:太空狗 更新时间:2023-10-29 19:49:42 28 4
gpt4 key购买 nike

如果我想在C++中动态创建一个int数组,然后删除它,是否需要对int数组进行null终止?如果是这样,我该怎么做?如果不是,计算机如何知道要释放多少内存?

int *array = new int[x];
..do some stuff..
delete array;

我知道对于 char 数组,它最多删除一个空字符 ('\0'),如果您的字符串中没有终止空字符,您可能会遇到内存冲突错误,但这如何适用于整数数组(和其他数组,如结构数组)?

最佳答案

您的数组使用的内存块中有一些额外的数据,您的程序无法直接看到这些数据,这些数据告诉delete 该 block 有多大。

顺便说一下,您所说的关于 char 数组的内容是不正确的 - NUL 终止符的存在与 delete 无关 - 它使用隐藏的 block 大小就像任何其他内存块一样。

(顺便说一下,当你删除一个数组时,你应该说 delete [] array;。)

关于c++ - 空终止 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7100593/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com