STATUS_STACK_BUFFER_OVERRUN と STATUS_STACK_OVERFLOW があることがわかりました。それらの2つの違いは何ですか?スタック オーバーフロー (スタックの枯渇) がスタック バッファ オーバーフローと同じではないことがわかりましたが、説明がないか、理解できません。あなたは私を助けることができます?
よろしくトバイアス
STATUS_STACK_BUFFER_OVERRUN と STATUS_STACK_OVERFLOW があることがわかりました。それらの2つの違いは何ですか?スタック オーバーフロー (スタックの枯渇) がスタック バッファ オーバーフローと同じではないことがわかりましたが、説明がないか、理解できません。あなたは私を助けることができます?
よろしくトバイアス
メモリ内で下向きに成長する次のスタックを考えてみましょう。
+----------------+
| some data | |
+----------------+ | growth of stack
| 20-byte string | V
+----------------+
limit of stack
20 バイトの文字列に 30 バイトを書き込むと、バッファ オーバーランが発生します。これにより、スタックのさらに上のエントリ (「一部のデータ」) が破損します。
スタック オーバーフローは、スタックが既にいっぱいになっているときに別のものをスタックにプッシュしようとした場合です(「スタックの制限」と表示されている場合)。通常、スタックの最大サイズは制限されています。
Stackoverflow
buffer overrun
データを割り当てるためのスペースがメモリ内にない場合に表示さbuffer overflow
れ、プログラムがバッファ境界をオーバーランし、メモリの予期しない部分にデータを書き込み/上書きした場合に呼び出されます (予想よりも多くのメモリを消費します)。
これは、タグstackoverflowとbuffer overflowの説明を読むだけで簡単に理解できます。