gpt4 book ai didi

c - 在文件范围内修改的变量 Struct C

转载 作者:太空宇宙 更新时间:2023-11-04 01:07:50 28 4
gpt4 key购买 nike

您好,当我尝试为结构分配全局变量的数组大小时出现编译错误,用户将在命令行中输入该变量,然后将值传回全局声明的变量。

这里只是示例代码

#include<stdlib.h>
#include<stdio.h>

int Type;

struct list_el {
int val;
} list1[Type];

struct list_el item;

int main() {
Type = 10; //just sample
}

错误

variable modified at file scope Struct C

有没有办法解决这个问题?我需要它在全局范围内工作。

非常感谢。

最佳答案

当声明一个数组时,您需要一个用于大小的编译时常量,Type 不是。

如果你想在运行时分配,使用指针和malloc


好吧,实际上你可以有数组大小的非常量变量,它叫做variable-length arrays .为大小使用全局变量的问题是全局变量被初始化为零,所以你所做的实际上是创建一个包含零元素的数组,但前提是变量 Type 在数组被创建。

关于c - 在文件范围内修改的变量 Struct C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19421352/

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