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

标签 c arrays pointers char size

在这段代码中,“数组”是一个指向字符的指针数组?还是别的?

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

提前致谢:)

最佳答案

它是指向 SIZE char 数组的指针。

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

分配,稳定版照常

array = malloc(num_elements * sizeof *array);

通过采用取消引用的指针的 sizeof 来指定 block 中每个对象的大小(此处为 char[SIZE])。如果类型发生变化,例如,您不需要更改该分配为 int (*)[SIZE]

如果要指定类型,

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

这分配 - 如果 malloc 成功 - 一个足够大的 block 用于 num_elementsSIZE char 数组,这些数组中的每一个都可以访问

array[i]

和 block 中数组中的char

array[i][j]

关于c - 代码中的这一行是什么意思? (指向字符的指针数组)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14259254/

相关文章:

javascript - 如果我只在数组中设置一个高索引,它会浪费内存吗?

c - 输入字符数组中的字符流

vector 中的 C++ 多态类指针

c++ - 对单个结构字段的下标访问

c++ - boost::shared_ptr 问题。为什么这行得通?

c++ - 多线程环境下的变量同步

C fscanf 输入验证

c - free() 一大块内存时出错

javascript - 将数组拆分为多个包含字符串的数组

c - 终止带有 else 子句的 if … else if 有什么好处?