gpt4 book ai didi

c - 使用命令行参数声明结构

转载 作者:太空宇宙 更新时间:2023-11-04 00:21:45 25 4
gpt4 key购买 nike

我正在尝试从命令行参数中获取某个值。然后使用这个值我将在我的结构中设置一个整数数组的大小。

我的代码:

int main( int argc, char* argv[])
{
int size_of_heap = atoi(argv[1]);


struct s_status
{
int block_size[size_of_heap];
char status[size_of_heap];
};

它给我错误“可变长度数组的声明无效”。

我不明白为什么它不起作用,因为size_of_heap现在应该是atoi()从字符串转换后的整数,所以block_size[size_of_heap]应该和block_size[any number]一样。

提前致谢

最佳答案

Variable length arrays在 C99 中引入。如果您不能使用支持 ANSI C 以外的标准的编译器,请像这样声明您的结构:

struct s_status {
int *block_size;
char *status;
}

并使用 malloc() 在运行时为结构成员分配内存。

关于c - 使用命令行参数声明结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13334579/

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