バッファオーバーランしない?」と考えた方、するどいです。世の中そう単純ではありません。1770こうなります。オーバーランするようになりました。2分割したのか?くっつけてみたらわかります。faultもう意味不明ですよね。言語仕様上の未定義動作なので、何が起きても正しい、つまりどの結果も正しいです。1つ/2つ」に着目して説明します。した後、参照のみで代入しません。バッファオーバーランはスタックに退避されているレジスタ値などを書きつぶしますが、ギリギリ続行できています。置換すると返せるアドレスがなくなり結果が変わってしまいます。スタックに配置されます。1つ)いわゆる偶然の結果です。バッファオーバーランによりスタックに退避したレジスタ値などが壊れます。1つ減って(8バイト分余裕がなくなる)、1番目の実験でギリギリリターンアドレスを壊されずに耐えていたものが、耐えられなくなります。スタックに配置されて、受け止めてくれるので、80回でも耐えます。言語仕様に矛盾しないなら、どっちでも良いです。言語プログラマは言語仕様(特に未定義動作)を理解しておらず、何となく使っています。難解な仕様、曖昧な理解、過激な最適化の相乗効果により、今日も世界のどこかで「最適化で動きが変になっちゃったよ......。して...どうして......?」とコンパイラとすれ違ったプログラマが泣いているでしょう。大したものではありませんが、ソースコードを載せておきます。19:04]コメント一覧コメントはありません。「私も正直びっくりです。お気に入りのマンガ紹介シリーズ。