程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 鏈棧-關於c++中棧的儲存方式的問題

鏈棧-關於c++中棧的儲存方式的問題

編輯:編程解疑
關於c++中棧的儲存方式的問題

1.書上說棧的剩余空間小於申請空間時將提示棧溢出,但是棧又是一塊連續的內存,如圖剩下3byte,如果我要申請一個3byte的數組會提示棧溢出嗎?
2.棧有鏈棧和順序棧,說明棧在內存中有兩個部分,還是人工定義了類似於pop、push的操作強行把棧分為兩部分
3.能舉一些在順序棧和鏈棧上內存自動分配的數據類型嗎,比如像數組這樣在順序棧上的圖片

最佳回答:


應該區分數據結構“棧”和程序數據段“棧”。數據結構“棧”是一種後入先出的結構,在實現上可分為鏈棧和順序棧,一般與“隊列”這種結構(先進先出)相比較。而你說的是程序數據段“棧”,或稱“堆棧”,是操作系統為應用程序分配的一段連續內存,因為其操作方式是先入後出的方式,因此被稱為堆棧。程序數據段“棧”在內存上都屬於順序棧,不存在鏈棧,與它可相提並論的是程序數據段“堆”(一塊動態分配的內存空間)。

  1. 堆棧中的剩余內存都是連續的,不會出現這種3個byte在3個地方的情況。
  2. 堆棧沒有鏈棧。
  3. 同樣的,數組也不是定義在順序棧上。它既可以定義在堆棧中,也可以定義在堆中。
cxsmarkchan
hchchc6016
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved