[英]Creating array of 2d arrays
我有很多數組
double foo[][2] = { {1.0,3.0}, {2.6,10.0}, {0.0,0.0} };
double bar[][2] = { {1.4,3.2}, {2.1,9.9}, {2.1,9.9}, {2.1,9.9}, {0.0,0.0} };
所以這些都是類型:
double (*)[2]
我想制作一個這些數組,所以我需要聲明一個指向array [2]的類型指針數組
double ((*array)[2])[] = {foo, bar};
此語法不起作用-是否可以在C語言中執行此操作?
我也嘗試創建一個類型,但這也不起作用:
typedef double *mytype[2] ;
mytype array[] = {foo, bar};
這兩個數組不是double(*)[2]
。 foo
的類型為double [3][2]
而bar的類型為double [5][2]
。 隱含而不是外部數組的大小。
要創建這些數組,請將它們用作指針,因此:
typedef double (*mytype)[2];
mytype array[] = { foo, bar };
沒有typedef的正確語法是:
double (*array[])[2] = {foo, bar};
double ((*array)[2])[] = {foo, bar};
這是行不通的,因為bar
的內存位置與foo
的內存位置無關,並且foo
和bar
的類型與double (*)[2]
的元素類型不相等,后者必須為double
類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.