C ++:复制数组

时间:2010-08-30 08:17:02

标签: c++

是否有可能在C ++中做这样的事情(现在不能自己测试)?

int myarray[10] = {111,222,333,444,555,666,777,888,999,1234};

void functioncc()
{
 int temparray = myarray;
 for(int x=0; x<temparray.length; x++){
    .... do something
 }

}

也许这个(但我认为不是):

int array1[5] = {0,1,2,3,4,5,6,7,8,9};
int array2[5] = {9,8,7,6,5,4,3,2,1,0};

void functioncc(int arid)
{
  temparray[10] = "array"+arid;
  ........

}

我可以在JavaScript中做类似的事情,但就像我说的那样 - 不要认为它在C ++中是可能的。

感谢您的时间。

3 个答案:

答案 0 :(得分:8)

#include <cstring>

int temparray[10] ;
memcpy (temparray, myarray, sizeof (myarray)) ;

答案 1 :(得分:3)

不确定

int myarray[] = {111,222,333,444,555,666,777,888,999,1234};

void function() {
    std::vector<int> temparray(std::begin(myarray), std::end(myarray));
}

请注意,以这种方式使用静态非const变量确实被忽略了,如果将它们传递给其他函数,则还必须传递“end”指针。

然而,C ++与Javascript是如此截然不同,严重的是,只是不要打扰。如果需要编写C ++代码,请获取实际的C ++资源并学习它。基本内容的语法是唯一的共同点。

答案 2 :(得分:1)

这两种情况都是不可能的。您必须将数组长度作为参数(了解它),或者将数组放在某个“终结符”作为最后一个元素。 (指针数组中的I.E.将NULL指针放在数组的末尾)