違いを教えてください
Re: 違いを教えてください
本当にprint関数を使っているんですか?
標準ライブラリーのprintf関数ではなくて?
もし、print関数が自作であるなら、そのコードを含めて
すべてのソースを正確に見せてください。
もし、printf関数を使っているのならば、そのコードを
正確に見せてください。まずはそこからです。
標準ライブラリーのprintf関数ではなくて?
もし、print関数が自作であるなら、そのコードを含めて
すべてのソースを正確に見せてください。
もし、printf関数を使っているのならば、そのコードを
正確に見せてください。まずはそこからです。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 違いを教えてください
ポインター変数wに、即値を直接代入することは未定義のはずです。
したがって、どんな結果が出ても不思議ではありません。
もし、アドレス値を出力したいのであれば、 な風にすればよいと思います。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 違いを教えてください
(0を除く)整数からポインタへの変換は「処理系定義」であり、「未定義」ではないと思います。
(N1570 6.3 Conversions → 6.3.2.3 Pointers)
ただし、
のように、書式 %d に int* 型の値を渡すのは、書式と渡されるデータの型がマッチしないので未定義動作になります。
(N1570 7.21.6.1 The fprintf function の 9)
未初期化の自動変数の値は不定であり、その値を使うと未定義動作になります。
また、書式 %p が受け取るのは void* 型のデータであり、
int* 型のデータを渡すのは(通常の環境では問題にはなりにくそうですが、厳密には) 未定義動作になります。
な風にすればよいと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)