2013-01-10 35 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'返回的值,以防失败。 –