在这段代码中,“数组”是一个指向字符的指针数组?或其他什么?
struct tmep{
char (*array) [SIZE];
}
提前致谢:)
答案 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]