# include <stdio.h>
# include <stdlib.h>
int main(int argc, char *argv[])
{
int a[5][10][2];
int *p;
p = (int(*)[10][2])p;//Gives error!
return EXIT_SUCCESS;
}
我想強制類型轉換p來輸入,以便它可以作爲一個指針給定的3-d陣列行動?有沒有辦法做到so.I上午applyindg變量的類型是變量名稱以外的所有內容。用C類型轉換指向一個多維數組
「你爲什麼會期望一個值」intpected「到(int(*)[10] [2])可以放入一個int *指針?」爲什麼不呢?它們都不會有相同的大小? – user2688772
@ user2688772:語言不關心「大小」。 「大小不重要。重要的是語言規範中描述的類型兼容性規則。這些規則說'int(*)[10] [2]'和'int *'是兩個完全不同的,不兼容的指針類型。 – AnT
尺寸似乎搞砸了;不應該是'int(*)[5] [10]'?我不是100%確定的。 – anatolyg