トップページ > 記事閲覧
何故か値が0になってしまう。
名前:PP 日時: 2020/09/13 21:41

次のコードでb.st_0の値がコードでは10と記述したのに、何故か0になってしまいます。何故なのでしょうか? #include "DxLib.h" typedef struct { int s_0[10]; int st_0; }times_t; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ChangeWindowMode(TRUE); // ウィンドウモードに変更 ClearDrawScreen(); //裏画面のデータを全て削除 if (DxLib_Init() == -1) return -1; times_t b = { 0,10 }; DrawFormatString(140, 100, GetColor(255, 255, 255), "%d", b.st_0); ScreenFlip(); //裏画面データを表画面へ反映 DxLib_End(); // DXライブラリ使用の終了処理 return 0; // ソフトの終了 }
メンテ

Page: 1 |

Re: 何故か値が0になってしまう。 ( No.1 )
名前:sereparu 日時:2020/09/13 23:05

「times_t」の「s_0」は配列なので、「times_t b = { 0,10 };」と書いた場合は 「b」の「s_0」の1番目の値(b.s_0[0])が「0」、2番目の値(b.s_0[1])が「10」という意味になります。 なので、上記の宣言では「b.st_0」の値が設定されていないので「0」になってしまいます。 「b.s_0」の配列の値をすべて「0」にして「b.st_0」の値を「10」にしたい場合は 「times_t b = { {0},10 };」のように宣言すればいいと思います。 補足ですが、間違って「解決」と書いてしまった場合でも、間違えた旨を書けば 新しくスレッドを立て直す必要は無いと思います。 (新しくスレッドを立てると、別の質問なのかと勘違いしてしまうため)
メンテ
Re: 何故か値が0になってしまう。 ( No.2 )
名前:PP(解決) 日時:2020/09/15 19:11

ありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存