gpt4 book ai didi

c++ - 指针数组的动态分配及其替代方案

转载 作者:搜寻专家 更新时间:2023-10-30 23:53:23 24 4
gpt4 key购买 nike

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

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