[英]Initializing only one member in a C struct for an array of struct elements
我有以下代码旨在初始化成员b。 所有MAX_SIZE结构都应该发生这种情况。
enum { MAX_SIZE = 10 };
struct some
{
int a, b;
}
many[MAX_SIZE] = { {.b = 5} };
int main()
{
int i;
for (i = 0; i < MAX_SIZE; i++)
{
printf("%d, %d\n", many[i].a, many[i].b);
}
}
我需要输出看起来像:
0, 5
0, 5
0, 5
... (10 times)
但是,实际输出为:
0, 5
0, 0
0, 0
... (10 times)
如何在不需要显式for循环来分配值的情况下获得所需的输出? 我知道在C ++中,这是通过仅为初始化b的结构提供构造函数来实现的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.