当我使用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/