我想知道将两个不同的数组组合成一个更大的数组的最快(或非常快)的方法是什么.举个简单的例子,假设我想组合初始化的数组int smallArray0[3]
和int smallArray1[2]
.
例如,我可以通过mallocs,memcpys和frees使用指针,但我的印象是(如果我错了,请纠正我)将所有内容都保存在堆栈中(对于较小的数据量)更快.因此,我们不要使用动态分配.
如果我想要实际复制数据,我只能考虑声明一个int biggerArray[5]
并使用for/While循环来填充它,如下所示:
for (int i = 0; i < 3; i++)
biggerArray[i] = smallerArray0[i];
for (i = 3; i < 5; i++)
biggerArray[i] = smallerArray1[i - 3];
有没有一种方法,不需要复制数据,而是有某种指针,顺序地指向smallArray0
的所有元素,最后指向smallArray1
?如果可以的话,这样会更快吗?
我希望这是有道理的,如果没有,我很乐意澄清.