大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 內存堆棧分配

內存堆棧分配

更新時間:2021-08-23 11:23:06 來源:動力節點 瀏覽991次

內存管理概述:

如圖一所示,在計算機中,主要分為以上存儲區域中,分別是:硬盤、內存、高級緩存 和寄存器。執行程序后,他們的運行速率自下而上(圖一)加快,與之相應的造價越高,其中,硬盤的運行效率最慢,寄存器的效率最快。在這幾個區域里,重點介紹一下內存。在C++ 中,內存主要分為五個區,分別是:代碼區、棧區、堆區、靜態(全局)數據區。

1.代碼區:

代碼區是用來儲存程序的所有代碼,以及字符串常量等在編譯期間就能確定的值,在程序的整個生命周期內, 在常量數據區的數據都是可用的。在這個區域內,所有的數據都是只讀的,不可以修改本區域的數據,之所以這樣,是因為在實際的實現中,最底層內部存儲格式的實現會使用特定的優化方案。比如說,編譯器可能只把字符串常量存儲一次,而在幾個重疊的對象里面引用它 。

2.棧區:

(1)定義:

棧區主要存放編譯器在需要的時候自動分配,在不需要的時候自動銷毀的變量。主要是局部變量和函數的參數等,在函數調用和傳參的時候,編譯器為局部變量或形參開辟空間,注意,在這塊空間中,編譯器并不會自動對它進行任何的初始化,它所保存的不是0,而是一個隨機值(可能是該儲存區上次被使用后的值),在函數結束后,所開辟的空間將自動銷毀,里面所存的內容將不復存在,也就是釋放存儲區的內容。 這就是為什么老師們在講課中,最喜歡用的字眼:參數壓棧和彈出。

(2)易錯點:

在這里,不得不說明,當一個自動變量的地址被存儲在一個生命期長于它的指針時,自動變量被釋放后,該指針就成了一個“懸空指針”,這一點是非常可怕的,因為“懸空指針的內容無法預測的”

3.全局靜態(數據)區:

全局(靜態)數據區:顧名思義,它是用來存儲全局靜態變量的存儲區域。只有在程序啟動的時候才被分配,直到程序開始執行時才被初始化,比如:函數的靜態變量就是在程序執行到定義該變量的代碼時才被初始化的。在靜態區數據區中沒有被初始化的區域可以通過void* 指針來訪問或操縱,但是,static定義的靜態變量只能在本文件中使用,不可在其它文件中聲明使用。

4.堆區:

(1)定義:

堆區是一個動態的存儲區域,使用庫函數malloc()和free(),和操作符new和delete以及一些相關變量來進行分配和回收,在堆區中,對象的生命周期可以比它村在內存中的生命周期短,換句話說:程序可以獲得一片內存區域而不用馬上對它進行初始化,同時,在對象被銷毀后,也不用馬上收回它所占用的內存區,在這段時間內,用戶可以還可以用void*型的指針訪問這片區域,但是原始對象的非靜態區以及成員函數都不能被訪問或者操縱,因為我們知道實際上對象已經不存在了。

動態內存分配到底是怎么分配的

1.好奇心不僅害死貓:

(1)數組元素的存儲方式:int array[8];

如圖所示,數組元素在內存中是連續存放的,當一個數組被聲明時, 它所需要的內存在編譯時就被分配。但是,在創建數組時,須用一個常量來指定該數組的長度,而數組本身長度常常在運行時才知道,它所占內存空間的大小便取決于輸入數據,在這種情況下,我們通常采取的解決辦法便是聲明一個比較大的數組,以確保它能夠容納足夠多的數據。

2.優缺點:

(1)優點:定義數組時簡單、數組大小一目了然。

(2)缺點:有以下三點

1)此類聲明在程序中引入了人為的限制,如果程序需要使用的元素數量超過了先前聲明的長度,則無法處理。

2)解決(1)中的問題,毫無疑問會想到把數組的聲明更大一些,但是,如果程序的元素數量比較少時,會造成大量的空間被浪費掉(如圖三)

3)若元素個數遠遠大于數組容納范圍時,程序因做出合理的響應,不應該由此失敗

那么,這時候,人們好奇,有沒有一種可能,使得我要多大的的內存就有多大? 我想存什么類型的數據就開辟相應字節大小的空間呢?正是因為這些好奇心的出現,才有了我們現在的動態內存分配。

以上就是動力節點小編介紹的"內存堆棧分配",希望對大家有幫助,想了解更多可查看Java堆棧。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 一区二区不卡在线观看 | 亚洲日本视频在线观看 | 亚洲乱码中文字幕 | 天天曰天天爽 | 午夜性色吃奶添下面69影院 | 欧美特黄一级大黄录像 | 欧美xxx4k精品hd | 日日操综合 | 亚洲欧美一区二区三区综合 | 婷婷亚洲视频 | 亚洲伦理中文字幕一区 | 国产 日韩 在线 | 色在线网| 国产极品嫩模在线观看91精品 | 日韩精品中文字幕久久 | 99福利视频 | 曰韩一级片 | 久久99国产亚洲精品观看 | 国产欧美成人一区二区三区 | 亚洲综合视频在线观看 | 亚洲精品影视 | 四虎国产| 国产精品好好热在线观看 | 高清黄色毛片 | 日韩a级片视频 | 69做爰视频在线观看 | 成 人 黄 色 大 片 | www久久久| 免费在线观看h片 | 大色综合色综合资源站 | 美女被羞羞视频网站在线 | 日本特级视频 | 久久69精品久久久久久hb | 四虎资源 | 操穴影院| 男人爱看的网站 | 香蕉尹人| 国产区一区二区三 | 视频福利一区 | 国产一区中文字幕 | 天天想天天干 |