亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

關于C++使用指針 堆和棧的區別分析

2020-01-26 16:19:16
字體:
來源:轉載
供稿:網友

數據在內存的存放有以下幾種形式

1.棧區--由編譯器自動分配并且釋放,該區域一般存放函數的參數值,局部變量的值等,
2.堆區--一般由程序員分配釋放,如果程序員不釋放,程序結束的時候才會被操作系統回收,
3.寄存器區--用來保存棧頂指針和指令指針
4.全局去--也是靜態區,全局變量和靜態變量都是存儲在一起的,初始化的全局變量和靜態變量都存儲在一塊,為初始化的全局變量和靜態變量在相鄰的另一個區域,程序結束后由系統釋放。
5.文字常量區--常量字符串就是放在這里的,程序結束后由系統釋放,
6.程序代碼區--存放函數的二進制代碼。

函數參數和局部變量存放在棧中,函數運行結束或者返回系統就釋放了他們所占用的內存空間,但是全局變量不會被系統釋放掉。全局的只有在程序結束后才會被系統所釋放,而且由于全局變量被所有的類成員和函數所共享,很容易被修改,為了解決這一問題
我們會使用堆

堆棧的區別

1.申請方式的不同

堆是程序員自己申請
而棧則是有程序判斷局部變量或者函數 系統來自動分配

2.系統的響應不同

棧-只要棧的剩余空間大于所申請的空間,系統將為程序提供內存,否則將提示棧溢出 overflow

堆- 系統收到程序中申請的控件后,會遍歷一個操作系統用來記錄內存控件地址得鏈表,當找到一個空間大于所申請控件的堆結點后就會將該節點從記錄內存空閑地址的鏈表中刪除,并將結點的內存分配給程序,然后在這塊區域的首地址處記錄分配的大小,     這樣我們在使用delete來釋放內存的時候,delete才能正確的識別并刪除該內存區域的所有變量,另外我們申請的內存空間與堆結點上的內存空間不一定相等,這時候系統就會自動將堆結點上的多出來的一部分內存空間回收到空閑鏈表中

3、空間的大小不同

棧-在windows狀態下,棧是一塊連續的內存的區域,它的大小是2M,也有的說1M,總之這個數值是一編譯的時候就確定的常數,是由系統預先根據棧頂的地址和棧的最大容量定義好的,加入你的數據申請的內存空間超過棧的空間,就會提示overflow,所以別指望棧能夠存儲比較大的數據。

堆-堆是不連續的內存區域,各塊區域由鏈表將他們串起來,這些串聯起來的內存空間叫做堆,他的大小是由系統中虛擬的內存來定的,因此獲得的空間比較大,而且獲得空間的方式也比較靈活。

4.執行效率的不同

棧-棧由系統自動分配,因此速度比較快,但是程序員不能對其進行操作。
堆-堆是程序員分配的內存,     一般速度比較慢,而且容易產生內存碎片,不過用起來很方便。

5.執行函數的不同

棧-在函數調用的時候,第一個進棧的是被調用函數下一行的內存地址,其次是函數的參數,假如參數多余一個,那么次序是從左往右,最后才是函數的局部變量。

由于棧的先進后出原則,函數結束時正好相反,先是局部變量先出棧,然后是參數,次序是從左向右,這時所偶的變量都出棧,指針自然的第一個進棧的那行內存地址,也就是被調用函數的下一行內存地址,程序根據該地址跳轉到調用函數的下一行自動執行。

由于棧的先進后出原則,所以他永遠不可能產生內存碎片

堆--堆是一大堆不連續的內存區域,在系統中由鏈表將他們串聯起來,因此在使用的時候必須由程序員來安排,他的機制是很復雜的,有時候為了分配一塊合適的內存,程序員需要按照一定的算法在堆內存中搜索可用的足夠大的空間,如果沒有滿足條件的空間,那么就要向內存中發出申請一部分內存空間,這樣才能有機會分配足夠大的內存,然后將計算后的數值返回,顯然堆的運行效率比棧低很多,而且容易產生碎片,但是好處是堆可以存儲相當的大的數據,并且一些細節可以由程序員來安排。

以上就是堆棧的區別 但是在應用中的取舍還是具體問題具體分析

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲色图25p| 欧美理论在线观看| 高跟丝袜欧美一区| 亚洲综合中文字幕在线| 亚洲综合日韩在线| 亚洲一区二区三区在线免费观看| 欧美一区二三区| 成人免费淫片aa视频免费| 成人精品一区二区三区电影黑人| 亚洲成色999久久网站| 欧美在线影院在线视频| www国产精品com| 18久久久久久| 日韩在线免费视频观看| 伊人久久精品视频| 久久激情视频久久| 亚洲第一网站免费视频| 狠狠色狠色综合曰曰| 久久亚洲精品国产亚洲老地址| 国产精品一区二区三区久久久| 91老司机精品视频| 国产成人精品国内自产拍免费看| 久久久精品一区| 日韩av免费看| 中文字幕无线精品亚洲乱码一区| 欧美专区第一页| 国产精品999| 亚洲精品白浆高清久久久久久| 91九色视频导航| 中文字幕在线观看亚洲| 亚洲色图日韩av| 亚洲第一中文字幕| 亚洲无亚洲人成网站77777| 国产欧美一区二区三区四区| 成人免费xxxxx在线观看| 91国偷自产一区二区三区的观看方式| 亚洲国产精彩中文乱码av| 粉嫩老牛aⅴ一区二区三区| 午夜精品久久久99热福利| 欧美日韩免费区域视频在线观看| 综合网日日天干夜夜久久| 欧美三级欧美成人高清www| 亚洲激情在线视频| 欧美老女人bb| 91人成网站www| 国产精品久久久久久久久粉嫩av| 亚洲成人网在线| 久久青草福利网站| 欧美日韩国产影院| 欧美麻豆久久久久久中文| 欧美日韩在线第一页| 国产精品美女久久久久av超清| 国产精品视频播放| 国产在线视频2019最新视频| 91久久精品在线| 成人妇女免费播放久久久| 日日骚久久av| 中文字幕亚洲天堂| 久久久999国产精品| 亚洲欧美国产va在线影院| 欧美中文字幕在线观看| 欧美国产在线电影| 欧美猛男性生活免费| 日本伊人精品一区二区三区介绍| 日韩欧美一区视频| 欧美性猛交99久久久久99按摩| 在线观看欧美日韩| 亚洲欧美日韩在线高清直播| 国产精品视频网站| 精品国产一区二区三区在线观看| 日韩精品在线视频美女| 久久国产精品久久久| 在线中文字幕日韩| 欧美综合一区第一页| 91免费在线视频| 国产亚洲一区二区精品| 国产91精品久久久久久| 红桃av永久久久| 国产精品久久久久久久午夜| 欧美成人午夜激情| 欧美激情中文字幕在线| 久久人人爽人人爽爽久久| 琪琪亚洲精品午夜在线| 欧美日韩免费一区| 亚洲曰本av电影| 久久久久久久久久久免费精品| 久久久久久久久网站| 久久人人爽国产| 日韩福利视频在线观看| 在线观看91久久久久久| 国产性猛交xxxx免费看久久| 日韩成人av在线播放| 日韩av色综合| 91亚洲精华国产精华| 欧美巨乳美女视频| 中文字幕在线看视频国产欧美在线看完整| 亚洲欧美日韩国产中文| 欧美精品精品精品精品免费| 亚洲第一综合天堂另类专| 久久久久久久久国产精品| 欧美大片欧美激情性色a∨久久| 日韩欧美在线免费| 中文字幕亚洲激情| 国产偷亚洲偷欧美偷精品| 亚洲精品v天堂中文字幕| 一区二区三区视频观看| 国产精品免费观看在线| 另类视频在线观看| 成人久久18免费网站图片| 中文字幕av一区中文字幕天堂| 亚洲日本aⅴ片在线观看香蕉| www.日韩.com| 美女精品视频一区| 国内外成人免费激情在线视频| 日本精品久久电影| 亚洲性69xxxbbb| 亚洲自拍偷拍网址| 中文字幕亚洲欧美| 日韩欧美国产激情| 欧美性猛交xxxxx免费看| 欧美麻豆久久久久久中文| 久久精品小视频| 黑人巨大精品欧美一区二区| 亚洲天堂一区二区三区| 日韩精品极品毛片系列视频| 91人成网站www| 精品国产一区二区三区在线观看| 国产丝袜一区二区三区免费视频| 亚洲激情 国产| 高清欧美性猛交xxxx| 欧美大片在线影院| 亚洲成人黄色在线观看| 秋霞午夜一区二区| 欧美亚洲第一页| 亚洲欧美一区二区三区情侣bbw| 亚洲成人精品在线| 日韩av影院在线观看| 欧美国产日韩视频| 伊人一区二区三区久久精品| 亚洲国产美女久久久久| 黑人欧美xxxx| 欧美成年人在线观看| 欧美大奶子在线| 国产中文字幕亚洲| 国产精品一区二区三区久久| 北条麻妃一区二区三区中文字幕| 亚洲大胆美女视频| 日韩欧美在线视频免费观看| 亚洲va久久久噜噜噜久久天堂| 国产精品一区二区三区久久久| 欧美专区日韩视频| 欧美裸身视频免费观看| 欧美激情亚洲国产| 国产精品一二三在线| 久久综合色影院| 国产日韩欧美在线播放| 欧美激情一区二区三级高清视频| 色综合天天狠天天透天天伊人| 正在播放欧美视频| 国产精品91久久久久久| 欧美日韩国产在线| 国产大片精品免费永久看nba| 亚洲国产欧美日韩精品| 精品五月天久久|