構造体配列の全てを同じ値で初期化したい。
Posted: 2019年7月21日(日) 22:58
#include <stdio.h>
typedef struct {
char word[20];
int kaisu;
} node;
node wordh[1000] = { { "yyy", 1 } };
void init_wordh(void)
{
for (int i = 1; i < 1000; i++) wordh[i] = wordh[0];
}
int main(void)
{
init_wordh();
printf("wordh[0] = { %s, %d }\n", wordh[0].word, wordh[0].kaisu);
printf("wordh[999] = { %s, %d }\n", wordh[999].word, wordh[999].kaisu);
}
#include <stdio.h>
typedef struct {
char word[20];
int kaisu;
} node;
#define T2 { "yyy", 1 }
#define T1 T2,T2,T2,T2,T2,T2,T2,T2,T2,T2
#define T T1,T1,T1,T1,T1,T1,T1,T1,T1,T1
node wordh[1000] = { T, T, T, T, T, T, T, T, T, T };
int main(void)
{
printf("wordh[0] = { %s, %d }\n", wordh[0].word, wordh[0].kaisu);
printf("wordh[999] = { %s, %d }\n", wordh[999].word, wordh[999].kaisu);
}
for分ではなく、for文ですね。ジーラ(初心者) さんが書きました: ↑6年前for分で繰り返すというところまでは浮かんでいたのですが、上手く行かず悩んでいたのです。