gpt4 book ai didi

c - 为 C 结构体数组中的每个元素分配默认值

转载 作者:行者123 更新时间:2023-11-30 18:15:38 24 4
gpt4 key购买 nike

我需要用相同的默认值初始化一个结构数组。这是一个非常大的数组,因此在初始值设定项中手动设置每个元素是不可行的。以下代码是执行此操作的正确且明智的方法,还是我需要依靠某些初始化函数和 for 循环?

#define SIZE_OF_S1_ARR 10000 //just some arbitrary size for an example

typedef struct { char* id, char* description} S1;

/*
* Array of structs, with each element having an id and a description
* which is an empty c-string
/*/
S1 s1_arr[SIZE_OF_S1_ARR] = {{ "", "" }};

我要补充一点,这个数组已经作为 char 数组存在,它只包含 ids 作为单个字符。我正在用更有用的结构替换它。

最佳答案

在标准 C 中,除了 0 之外,没有数组初始化,除非单独指定每个值。

但是,如果您使用 GNU C 编译器,则可以使用如下内容:

char s1_arr[SIZE_OF_S1_ARR] = {[0 ... SIZE_OF_S1_ARR-1] = '_' };

请注意,这种方法不可移植。此外,请注意,可以通过两种方式初始化字符串(即指向 char 的指针)以具有相同的值:(可能自动)分配多个字符串并将其分配分配一个字符串并将其分配给所有元素

关于c - 为 C 结构体数组中的每个元素分配默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16718365/

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