我不知道问题出在哪里我将地址分配给其他二维数组。请帮我解决这个问题
int main()
{
int a[3][2];
int b[2]={0,1};
a[2]=b;
return 0;
}
prog.cpp:8:9: error: invalid array assignment
答案 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;
}