1

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

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

提前致谢 :)

4

1 回答 1

7

它是一个指向 s 数组的指针SIZE char

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

分配,稳定版照常

array = malloc(num_elements * sizeof *array);

通过采用取消引用的指针来指定块中每个对象(char[SIZE]此处)的大小。sizeof如果类型更改为int (*)[SIZE].

如果要指定类型,

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

这将分配 - 如果malloc成功 - 一个足够大的块用于s 的num_elements数组SIZE char,这些数组中的每一个都可以使用

array[i]

以及char块中数组中的 s

array[i][j]
于 2013-01-10T13:41:27.037 回答