問題タブ [stackunderflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
2879 参照

c - スタック オーバーフロー/アンダーフローが実行時エラーをトリガーしないのはなぜですか?

このコード スニペットを使用します。

コンパイラは Linux x86 用の GCC です。実行時エラーなしで正常に動作します。また、このコードを Valgrind でテストしましたが、メモリ エラーも発生しません。

私の理解では、ヒープとスタックは同じ種類のメモリです。唯一の違いは、それらが反対方向に成長することです。

だから私の質問は:

スタック オーバーフロー/アンダーフローでは発生しないのに、ヒープ オーバーフロー/アンダーフローによってラムタイム エラーが発生するのはなぜですか?

なぜ C 言語設計者は、未定義の動作のままにする以外に、ヒープと同じようにこれを考慮に入れなかったのですか?