【发布时间】:2022-01-02 21:22:32
【问题描述】:
我需要声明一个大小为symbolnum的结构数组,但是因为symbolnum是变量C,当我编写以下代码时会产生错误:
extern int symbolnum;
struct SymbTab stab[symbolnum];
我已经试过了:
extern int symbolnum;
const int size = symbolnum;
struct SymTab stab[size];
有没有办法在不使用动态内存分配函数(如malloc())或使用非常大的数字初始化数组大小的情况下实现这一点?
【问题讨论】:
-
使用
malloc有什么问题? -
stab是全局变量还是局部变量? -
@notthatbad 所以你需要告诉我们更多关于你的实际问题。
symbolnum的内容是谁定义的,什么时候定义的? -
@notthatbad 那么这是否意味着包含
stab的源文件是在构建时使用初始化程序创建的? -
另一种方法:声明
struct SymbTab stab[1024];并在您的程序中添加运行时检查以确保您的符号少于 1024 个。