【发布时间】:2015-08-17 16:14:15
【问题描述】:
有没有办法在 C 中定义可变大小变量?
例如,我想定义一个表,其中表的条目和每个条目的大小都应根据配置文件而变化,而无需重新编译源代码。
要动态定义表的条目,我们可以在 C 中使用 malloc 或在 C++ 中使用 new,但是大小如何?我的意思是像下面这样的
typedef union {
// the size of x is determined by the configuration file
typeof(x) x;
struct {
// n, m are read from the configuration file when the program is running
typeof(x1) x1: n;
typeof(x2) x2: m;
// Also, the fields should be variadic
... //other_variable
};
};
非常感谢你,如果你觉得很可笑也请回复我。
【问题讨论】:
-
可能是动态分配的数组?
-
C 和 C++ 在这方面有很大的不同,所以你应该决定你想要哪一个。
-
语法独角兽没什么意义:-P ...
-
你不能。从您简短的 sn-p 中,您的代码甚至无法编译。如果您要问的是泛型,则可以改用
void *。并手动维护类型信息。