C++ C++;指向另一个函数中的数组

C++ C++;指向另一个函数中的数组,c++,arrays,C++,Arrays,我有一个函数1,其中用户在array1中输入数据。我必须使函数2中的array2等于函数1中的array1 我如何“告诉”它应该使用函数1中的array1 我试过了 array2[50] = array1[50]; 但这当然不起作用。您需要将array1元素复制到array2,例如 for (unsigned i=0; i<array1_size; ++i) { array2[i] = array1[i]; } 对于这两种方法,您都需要知道array1中的元素数量(示例中为ar

我有一个函数1,其中用户在
array1
中输入数据。我必须使函数2中的
array2
等于函数1中的array1

我如何“告诉”它应该使用函数1中的
array1

我试过了

array2[50] = array1[50];

但这当然不起作用。

您需要将
array1
元素复制到
array2
,例如

for (unsigned i=0; i<array1_size; ++i) {
    array2[i] = array1[i];
}

对于这两种方法,您都需要知道
array1
中的元素数量(示例中为
array1_size
)。另外,
array2
需要至少与
array1
一样大

迭代一个数组中的所有元素并将它们分配给第二个数组。

memcpy(第二个数组,第一个数组,sizeof(第二个数组))


[原始来源网站][http://www.devx.com/tips/Tip/13291]

我建议->你的目标是什么?函数2是否只需要读取数组1的值?您需要修改它们吗?你是否考虑过使用像矢量而不是数组之类的东西?你真的想复制数组吗?为什么不使用相同的数组呢?我需要复制数组并修改副本。我还没有研究向量是如何工作的,所以我不知道如何使用它们。不过谢谢。向量就像“智能阵列”一样工作。除了自动调整大小和边界检查,你可以简单地做vector2=vector1,vector2将是vector 1的独立副本,取决于他的数组包含的内容。这可能会有问题,因为它不调用复制构造函数,而是复制原始内存。问题中没有指标表明存在指向结构或对象的指针,此外,没有迹象表明需要浅拷贝或深拷贝,如果他在表中只有int或char,那么应用程序将比std::copy快得多,我声称90%以上的实时系统使用这些低级机制来拷贝数组甚至单个对象。您对此进行基准测试了吗?使用我的编译器和int数组,std::copy与memcpy一样快,但安全得多。这取决于您的平台/编译器,std::copy使用memmove,它没有memcpy快,因为它包含额外的检查,我这里没有适当进行性能测试的系统,如果您制作了1000个memcpy与1000个memoves,您已经看到了区别,添加std::copy的检查将再次降低性能
std::copy(array1, array1 + array1_size, array2);