初歩的なことなのですが、龍神録プログラミングの館の第4章で少し気になる点がありました。
キャラクタデータを構造体で定義していると思うのですが、初期化をしていないのに座標が(0, 0)だったり、
キャラクタ画像も1枚目が選ばれていると思います。
わざわざ初期化をしなくても勝手に構造体の中身は0で定義されるのでしょうか?
もし過去に同じような質問があったらすみません。
龍神録プログラミングの館 第4章 構造体の初期化
Re: 龍神録プログラミングの館 第4章 構造体の初期化
基本的には、構造体は初期化しておいたほうがいいですよ~。
構造体も変数の集まりなので、初期化しておかないと行けないんです。
構造体も変数の集まりなので、初期化しておかないと行けないんです。
デバッグは投げ捨てるものではない。
今までの質問でこれは学んだこと。
質問する時は、必ずちゃんと調べた上に問題をもとにした仕様書を作ってから質問すること。
仕様書の大切さを改めて思い知った…。
今までの質問でこれは学んだこと。
質問する時は、必ずちゃんと調べた上に問題をもとにした仕様書を作ってから質問すること。
仕様書の大切さを改めて思い知った…。
Re: 龍神録プログラミングの館 第4章 構造体の初期化
この場合、キャラクタデータの構造体は静的スコープを持つグローバル変数なので、明示的に初期化しなければゼロで初期化(zero-initialize)されます。
構造体であっても、コンストラクタを明示的に定義していなければ、静的でないローカル変数(自動変数)のクラスではない要素は初期化されません。
詳しくはN3337の3.6.2 Initialization of non-local variablesと8.5 Initializersを参照。
構造体であっても、コンストラクタを明示的に定義していなければ、静的でないローカル変数(自動変数)のクラスではない要素は初期化されません。
詳しくはN3337の3.6.2 Initialization of non-local variablesと8.5 Initializersを参照。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 龍神録プログラミングの館 第4章 構造体の初期化
お二人とも回答ありがとうございました。
とても気になっていたことなので、謎が解けて良かったです。
とても気になっていたことなので、謎が解けて良かったです。