代码中的这一行是什么意思? (指向字符的指针数组)?

时间:2013-01-10 13:39:49

标签: c arrays pointers char size

在这段代码中,“数组”是一个指向字符的指针数组?或其他什么?

struct tmep{
    char (*array) [SIZE];
}

提前致谢:)

1 个答案:

答案 0 :(得分:7)

它是指向SIZE char s。

数组的指针

声明模仿使用,因此您首先评估括号,(*array)为您提供char[SIZE]

要分配,稳定版本照常使用

array = malloc(num_elements * sizeof *array);

通过取char[SIZE]解除引用的指针来指定块中每个对象的大小(此处为sizeof)。如果类型更改,则无需更改该分配,例如到int (*)[SIZE]

如果要指定类型,

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

这会分配 - 如果malloc成功 - 一个足够num_elements SIZE char个数组的块,可以使用

访问这些数组中的每一个
array[i]

中块中数组中的char
array[i][j]