gpt4 book ai didi

c - 复制数组的快速方法

转载 作者:行者123 更新时间:2023-12-03 17:07:16 25 4
gpt4 key购买 nike

所以在每次迭代结束时,我想让我的数组等于我的新数组(我称之为 array_new)。我希望数组的每个元素都采用与 array_new 中相同的值,但我有兴趣尽快获取我的代码,因此像当前代码那样逐个元素地复制所有内容不是一个选项:

for(i=0;i<N_a;i++) {
for(j=0;j<N_b;j++) {
array[i][j] = array_new[i][j];
}
}

这需要相当长的时间,因为我的 N_a 和 N_b 值非常大。有没有一种方法可以简单地更改它们各自指向的内容,以便我可以更快地开始下一次迭代?我试过做类似的事情

 double *temp = *array;
*array = *array_new;
*array_new = temp;

为了尝试避免缓慢的逐元素复制过程,但它似乎对我不起作用。实际上,我试图实现的是让数组的每个元素都指向 array_new 中的相应元素,但我不知道如何让指针做到这一点。

如有任何帮助,我们将不胜感激!

最佳答案

由于数组的内存大小是固定的,您可以简单地将内存块从一个指针复制到另一个指针。没有比这更快的了。

c/c++ 中,如果您使用的是 memcpy 语言,则可以使用它。每种语言都有等价物。

编辑:因为你确认使用 c 我可以得到更详细的信息:

memcpy(array_new,array,sizeof(VARIABLE_TYPE_of_ARRAY_ELEMENT)*N_a*N_b);

关于c - 复制数组的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33660077/

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