c - C中结构内数组的初始化

标签 c struct

我试图在 C 程序的结构中允许可变长度数组。像这样:

struct result{
    int column;
    int row;
    const char* a[var][var];  
};

我该怎么做?

即使是下面的定义也可以:

struct result{
    int column;
    int row;
    const char* a[row][column];
};

请帮忙...

最佳答案

C 结构中不能有可变大小的数组。

你可以有指向可变大小数组的指针(你需要单独处理空间的分配),但你声明的是指针数组

如果你想要一个指针数组,试试

const char (*a)[][];

(如果您希望两个维度都是可变的,则需要将数组作为指向数组的指针的数组进行管理)

关于c - C中结构内数组的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4385521/

相关文章:

c - 在 Windows (ANSI C) (_beginthread/_beginthreadex/CreateProcess) 上 fork() 的任何简单/快速方法

c - 不同编译器的 sizeof(struct) 不同

c - 关于内存对齐的一些困惑

计算 C 中静态数组初始化的元素数量

c - 从多个源文件构建内核模块

c - C中的优化bsort

c++ - 指向结构的 std::vector 的指针

c - 如何将全0设置为通过结构(C)声明的数组?

C:数组结构作为结构数组

python - 将 C 代码转换为 Web Assembly 时出错