配列の中で、初期化していなかったら前の配列に補完したい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Tangeθ

配列の中で、初期化していなかったら前の配列に補完したい

#1

投稿記事 by Tangeθ » 6年前

下のコードのif文は、どう書けば良いのでしょうか?
それとも、初期化しているか、していないかは判断できないのでしょうか?

コード:


typedef struct
{
     int a,b,c;
} HOGE;

void hogee
{
	HOGE hoge[10];
	hoge[0].a=hoge[0].b=hoge[0].c=0;
	hoge[1].a=hoge[1].b=0;

	for(int i=0;i<10;i++)
	{
		if(hoge[i]のaが初期化していない)
		{
			hoge[i].a=hoge[i-1].a;
		}
		if(hoge[i]のbが初期化していない)
		{
			hoge[i].a=hoge[i-1].b;
		}
		if(hoge[i]のcが初期化していない)
		{
			hoge[i].c=hoge[i-1].c;
		}
	}
}

アバター
usao
記事: 1573
登録日時: 6年前

Re: 配列の中で、初期化していなかったら前の配列に補完したい

#2

投稿記事 by usao » 6年前

判断材料はありません.

代替手段として,例えば
a,b,cの有効な値域がある範囲内に制限されていることが既知であれば
”その範囲外の値で必ず初期化しておく”等して判定できると思いますが
これらの変数がintの全域にわたって値を取り得る条件下だとそれも無理です.

Tangeθ

Re: 配列の中で、初期化していなかったら前の配列に補完したい

#3

投稿記事 by Tangeθ » 6年前

なるほど、勉強になりました。ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る