2012-10-11 130 views

回答

7

考慮以下棧在內存中向下增長:

+----------------+ 
| some data  | | 
+----------------+ | growth of stack 
| 20-byte string | V 
+----------------+ 
limit of stack 

當你寫30個字節的20字節的字符串時,會發生緩衝區溢出。這會損壞進入堆棧的進一步數據('某些數據')。

堆棧溢出是當您嘗試將其他上的其他堆棧溢出到堆棧已滿的時候(它表示「堆棧限制」)。堆棧的最大尺寸通常受到限制。

0

Stackoverflow時,有內存中沒有更多的空間分配給您的數據,並buffer overrun又名buffer overflow時調用程序超支緩衝區邊界寫入/在內存部分意外(需要更多的內存比預期)覆蓋數據出現。

很容易,你可以通過閱讀標籤stackoverflowbuffer overflow的描述來理解這一點。