- C言語なら俺に聞け
618 :デフォルトの名無しさん[sage]:2016/03/20(日) 13:55:55.35 ID:X7hHDbSE - *(NULL); でセグフォると思って実験してみたんですが、手持ちのgccだとアセンブリから該当の処理を除いてるみたいなんです。
GDBでステップ実行してみても*(NULL)は無視されるんですが、これはコンパイラが気を利かせて無視しているんでしょうか?
|
- C言語なら俺に聞け
620 :デフォルトの名無しさん[sage]:2016/03/20(日) 14:08:11.01 ID:X7hHDbSE - レスありがとうございます。
ということは演算を行うとセグフォるんですよね。 *(NULL); で値を参照しているからセグフォると今まで勘違いしていました。。 ポインタ変数の切り替えだけなら不正じゃないんですね。
|
- C言語なら俺に聞け
622 :デフォルトの名無しさん[sage]:2016/03/20(日) 14:20:49.54 ID:X7hHDbSE - 演算に使われないからコンパイラの最適化で消されて結果的にセグフォらないってことですか
なんか騙し合いしてるみたいですね volatile使うアイデアは無かったので試して見ます。ありがとうございます
|
- C言語なら俺に聞け
623 :デフォルトの名無しさん[sage]:2016/03/20(日) 14:22:52.90 ID:X7hHDbSE - 無事にセグフォりました
|
- C言語なら俺に聞け
625 :デフォルトの名無しさん[sage]:2016/03/20(日) 14:39:03.85 ID:X7hHDbSE - 無事にセグメンテーション・フォルトが発生しました
|