簡體   English   中英

創建二維數組的數組

[英]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的內存位置無關,並且foobar的類型與double (*)[2]的元素類型不相等,后者必須為double類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM