当我使用new []关键字(或new-operator)时,它是否连续分配内存?

int* arr = new int[10];

我的意思是,是否可以保证arr [0]和arr [1]紧密放置,并且可以使用指针增量遍历arr?如果是这样,此行为是否保存结构和类而不是int?

最佳答案

C++标准绝对保证了这一点。
arr[0]arr[9]是连续的,元素之间不允许填充。指针算术在分配的区域中有效。您可以设置指向arr + 10的指针,但是请勿取消引用它。

这适用于任何类别。每个元素分配的内存量为sizeof(Y),其中Y是类或普通旧数据类型。

关于c++ - new []是否连续分配内存?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46241860/

10-11 22:53
查看更多