在下面我的例子不明白爲什麼我得到這個錯誤:不完整的類型元素[2] []
test.c:3:6: error: array type has incomplete element type
這裏,編譯器應該考慮一個完整的類型即[2][3]
因爲每個子元素的大小爲3.那麼,問題在哪裏?
long foo[2][] = {
{2,3,4},
{5,6,7}
};
如果我完成使用foo[2][3]
我會得到這個錯誤類型:
test.c:9:5: note: expected ‘long int *’ but argument is of type ‘long int (*)[3]’
int bar(long* list, size_t size)
使用這個例子:
int bar(long* list, size_t size);
int main() {
bar(&foo[0], sizeof(foo[0]));
return 0;
}
我怎樣才能解決這個問題?
[傳遞二維數組的結構]可能的副本(http://stackoverflow.com/questions/35614862/passing-a-2d-array-of-structs) – Olaf
'bar(foo [0] ,sizeof foo [0]/sizeof foo [0] [0])' –