使用 new int 分配数组的标准方法是:
int* arr = new int[50];
在以这种方式声明时,将进行连续的内存分配,并且变量堆栈中将有一个数组变量。
如果我想以 50 个不同的指针变量的形式声明它,以便每个指针都有不同的内存地址并且不一定是连续的,最明显的方法是这样的:
int * arr[50];
但是以这种方式分配内存的命令/代码是什么(即通过 new int )以及以每种方式声明的缺点或优点是什么。
最佳答案
显而易见的方法是遍历所有元素并为它们分配内存:
for (int i = 0; i < 50; i++){
arr[i] = new int;
}
非连续内存块的缺点是缓存未命中。 您可以阅读更多关于 here 的内容.
关于c++ - 指针数组的动态分配及其替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41238097/