在这段代码中,"数组"是一个指向字符的指针数组?或者是其他东西?
struct tmep{
char (*array) [SIZE];
}
Run Code Online (Sandbox Code Playgroud)
提前致谢 :)
它是指向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_elements的SIZE chars 块数组,可以访问这些数组中的每一个
array[i]
Run Code Online (Sandbox Code Playgroud)
和char块中的数组中的s
array[i][j]
Run Code Online (Sandbox Code Playgroud)