我有一個2D數組,需要將一個1D元素複製到一個數組中。 我試圖在下面的例子中重複我的問題。但是,下面的例子甚至不編譯,gcc
抱怨複製1d元素2d陣列
下標值既不是數組,也不pointer`
在行TwoDArray[9][99] = 99;
,這是爲什麼?我不太明白,任何幫助將不勝感激!
int main(void)
{
int i = 0;
int* TwoDArray;
int DestArr[100] = {0};
TwoDArray = calloc(10,sizeof(int*));
for (i = 0; i < 10; i++)
TwoDArray[i] = calloc(100,sizeof(int));
TwoDArray[9][99] = 99;
memcpy(DestArr, &TwoDArray[9],sizeof(int)*100);
printf("DestArr[99] %d\n",DestArr[99]);
return 0;
}
EDIT1:
我錯誤地沒有申報int** TwoDArray
爲指針的指針 - 這個變化之後,它現在編譯完美,但在我的結果值0
和我d期望它是99
- 這是爲什麼?
int *不是二維數組或指針。 –
箍,在我的問題中的錯誤...讓mer編輯,對不起! – cerr
變化到'INT ** TwoDArray;'...'的memcpy(DestArr,TwoDArray [9],的sizeof(int)的* 100);' – BLUEPIXY