gpt4 book ai didi

c - 在文件范围错误时可变修改 'variable_name'?

转载 作者:行者123 更新时间:2023-12-02 10:41:38 27 4
gpt4 key购买 nike

C 新手。编译时出现以下错误:

error: variably modified 'header' at file scope
error: variably modified 'sequence' at file scope

代码:
struct list{
char header[list_header_size];
char sequence[list_sequence_size];
struct list *next;
};

我认为这个错误意味着编译器需要从一开始就知道这些变量是什么。因此,我将调用结构体的 main() 移动到程序的末尾。我也尝试在程序开始时声明变量,但我不确定我是否正确这样做。我试过 char header;char header[];

最佳答案

你是对的,编译器需要知道结构成员的类型。它需要知道类型的原因之一是它可以计算大小。但是,在您的情况下,它无法知道大小,因为在您的结构中您定义了两个不是恒定大小的数组。因此,编译器不知道结构体的总大小,这违背了了解类型的目的。

最接近你想要的是替换两个char具有两个 char 的数组指针并分配它们将动态指向的内存。

关于c - 在文件范围错误时可变修改 'variable_name'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14925803/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com