2013-01-10 36 views

回答

7

這是一個指針的SIZEchar秒的陣列。

宣言模仿使用,所以你先評價括號,(*array)給你一個char[SIZE]

要分配,穩定版本是照常

array = malloc(num_elements * sizeof *array); 

通過取sizeof解除引用指針以指定塊中的每個對象(這裏char[SIZE])的大小。如果類型發生變化,您不需要更改該分配。到int (*)[SIZE]

如果要指定類型,

array = malloc(num_elements * sizeof(char (*)[SIZE])); 

這種分配 - 如果malloc成功 - 足夠大的SIZEchar小號num_elements陣列塊,每個陣列與

array[i] 
訪問

char s在塊中的陣列與

array[i][j] 
+0

如果我想用malloc來分配這個數組,大小爲「ARRAY_SIZE」,我應該怎麼做? –

+0

另一個問題,分配數組後,我會得到一個數組,它的每個單元格是一個指向大小爲SIZE的char數組的指針,對吧? –

+0

@EliasZarkaNassar:'x.array = malloc(sizeof * x.array);',其中'x'是'struct tmep'。並檢查'malloc'返回的值,以防失敗。 –