質問: %08x\n",a); ,,,,,,,,,,,,,,,,,,,,,,,,~~~~ ^ というようなエラーが出てしまいました. おそらく配列でaを宣言しているのに対しaとしているからエラーが出るのかと思いました。 しかし、この問題で出力として **a=1058a7bc**と出力されると記載されています。 プログラムが仮に正常に実行されるとして、16進数であるこの値はどこから来るのか理解できません。 10進数に直すと274245564と求められましたが、特に関係なさそうでした。 環境としては1ワード長が4バイト、32ビットのバイトアドレス方式のマルチコアで実行するとされています。 ご教示願います。
回答: まずこれはエラーではありません、警告です。 「コンパイルできるけどこのコード本当にお前の意図と合ってるか?」という通知です 警告の内容はメッセージどおりです。 > > この問題で出力としてa=1058a7bcと出力されると記載 > > > 何を表示しようとしているかはアドレスです。 なので必ずこの値が出力されるわけではありません。 (多分問題にも、例えばこういうふうに表示されるとか、とにかく出力の一例として書かれているはずです。) なお、アドレスを表示しようとしているので、printf の書式指定は本来なら%xではなく%pが適当です