2015-10-14 83 views
1

我不知道我分配給其他2維數組的地址問題在哪裏。請幫我解決這個問題無效的陣列分配

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

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

回答

1

您不能複製使用=數組。你也不能指定一個數組的地址;例如,當xy具有類型char[1]時,x = y;也不起作用。向b內容複製到a[2],使用memcpy

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

這種分配不是possible.Array允許特定的位置分配。 你可以嘗試這樣的:

int main() 
{ 
    int a[3][2]; 
    int b[2]={0,1}; 
    a[0][0]=b[0]; 
    a[0][1]=b[1]; 
    return 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; 
} 
2

因爲標準是這樣說的。數組不能分配,只能初始化。 所以 C:

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

C++:您可以使用的strcpy!

+0

哦,你可以用memcpy – Zjh