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

1 c arrays size pointers char

在这段代码中,"数组"是一个指向字符的指针数组?或者是其他东西?

struct tmep{
    char (*array) [SIZE];
}
Run Code Online (Sandbox Code Playgroud)

提前致谢 :)

Dan*_*her 7

它是指向SIZE chars 数组的指针.

声明模仿使用,所以你首先评估括号,(*array)给你一个char[SIZE].

要分配,稳定版本和往常一样

array = malloc(num_elements * sizeof *array);
Run Code Online (Sandbox Code Playgroud)

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

如果要指定类型,

array = malloc(num_elements * sizeof(char (*)[SIZE]));
Run Code Online (Sandbox Code Playgroud)

这将分配 - 如果malloc成功 - 一个足够大num_elementsSIZE chars 块数组,可以访问这些数组中的每一个

array[i]
Run Code Online (Sandbox Code Playgroud)

char块中的数组中的s

array[i][j]
Run Code Online (Sandbox Code Playgroud)