无效的数组分配

时间:2015-10-14 06:31:22

标签: c

我不知道问题出在哪里我将地址分配给其他二维数组。请帮我解决这个问题

int main()
{
    int a[3][2];
    int b[2]={0,1};
    a[2]=b;
    return 0;
}

prog.cpp:8:9: error: invalid array assignment

4 个答案:

答案 0 :(得分:2)

你应该逐个迭代b[2]的每个元素并存储到其中a[2] 试试这个:

int main()
{
    int a[3][2];
    int b[2]={0,1};
    for(int i=0;i<2;i++){
     b[i]=a[2];
    return 0;
}

答案 1 :(得分:2)

因为标准是这样说的。无法分配数组,仅初始化。 所以 C:

int i;
for(i = 0; i < 2; i++)
{
  a[2][i] = b[i];
}
...

C ++:你可以使用strcpy!

答案 2 :(得分:1)

您无法使用=复制数组。你也不能分配一个数组的地址;例如x = y;x类型y时,char[1]无法正常工作。要将b的内容复制到a[2],请使用memcpy

memcpy(a[2], b, sizeof(a[2]));

答案 3 :(得分:0)

此分配是不可能的.Array允许特定的位置分配。 你可以尝试这样:

int main()
{
    int a[3][2];
    int b[2]={0,1};
    a[0][0]=b[0];
    a[0][1]=b[1];
    return 0;
}