在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言程序的動態內存中棧內存區域的概念

電子工程師 ? 來源:單片機匠人 ? 作者:蔡琰老師 ? 2021-06-29 10:34 ? 次閱讀

C語言程序的動態內存分為棧內存區域和堆內存區域兩種。棧內存是由編譯器管理的,而堆內存是由程序調用具體的庫函數管理的。我們今天分析下棧內存的概念。

棧內存的使用在很大程度上依賴于處理器的硬件機制。在處理器中,一般有一個寄存器來表示當前棧指針的位置,通常在內存中分配一塊區域,這塊內存的上界(高內存地址)和下界(低內存地址)之間是可用的棧內存區域。

棧指針是一個指向棧區域內部的指針,也就是它的值是一個地址,這個地址位于棧區的下界和棧區的上界之間。棧指針把這個棧區域分為兩個部分,一個是已經使用的區域,一個是沒有使用的區域。

對于棧內存的增長方向有兩種:一種是向上增長的,也就是低地址向高地址增長;另一個是向下增長的,高地址向低地址增長。在目前常見的體系結構和編譯系統中,棧大多是向下增長的,我們也是看下這種常見的增長形式。在初始階段,棧指針是指向棧區間的上界。隨著棧使用量的增加,棧指針的值將向低地址移動,也就是在變小。

棧內存在使用過程中有一個重要的特性是先入后出,也就是后入棧的內容將先出棧,而先入棧的后出棧。類似于一個口的瓶子,先進去的在底下,要想底下的出來就先把上面的先倒出來。

入棧的過程和出棧的過程我們安全用圖形來表示,更形象些吧~

在入棧的過程中,如果棧指針的變化超出棧內存的區域,將發生棧溢出。

從圖中看出棧指針的功能是標識當前的棧位置。對棧內存處理中,每次能夠獲取的內容都是最后可放入棧內存的內容,而每次放入棧內存中的內容都將位于棧區域的最后。

總的來說其實棧是一個先入后出的內存區域,棧指針是提供一種硬件的內存機制。

還有一個大家可能都沒聽說過,或者都沒關注過的,我們來一起了解一下,就是滿棧和空棧的概念,我們還是通過圖來形容一下,這個是由處理器的體系結構決定的。與程序的編寫沒有關系,甚至編譯器都不需要關注這個問題。無論在哪種情況下,棧指針都是已經使用的棧區域和未使用的棧區域的分界線。

在滿棧的情況:棧指針當前的位置是已經使用的棧區域。

在空棧的情況:棧指針當期的位置是沒有使用的棧區域。

這個僅供大家了解下就可以了,畢竟對于我們大多數人來說都是應用者,多了解點底層的總沒錯,但也不必太深挖。對于棧內存的概念我就分享到這里,其實這個對于寫匯編的人來說就很有用處了,或者去多讀一些匯編就很能清楚棧內存的妙用了。

后續我分享堆內存的一些概念,話說知識是一點點積累的過程,有時候覺得前面有的知識點懵懵懂懂的突然連起來就又通透了。這就是堅持學習的作用,希望大家都能堅持多學,才能更會用。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7624

    瀏覽量

    139450
  • 程序
    +關注

    關注

    117

    文章

    3815

    瀏覽量

    82006

原文標題:C語言中的動態內存-----棧內存

文章出處:【微信號:gh_e7f294a514ca,微信公眾號:單片機匠人】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    IEC61508系統動態內存使用

    IEC 61508標準強烈推薦使用靜態內存管理方式。在安全應用設計,我們都在遵循這個建議。
    的頭像 發表于 04-11 15:17 ?714次閱讀
    IEC61508系統<b class='flag-5'>中</b>的<b class='flag-5'>動態內存</b>使用

    如何使用LAX_CODEGEN啟用動態內存分配?

    我目前正在探索NXP_MBDToolbox_LAX。lax_codegen 生成的代碼基于靜態分配。我想管理大型向量,如何使用 LAX_CODEGEN 啟用動態內存分配?
    發表于 04-10 08:09

    快速搞懂C語言程序內存分區!

    程序運行過程,操作系統會根據程序的需要,將內存劃分為多個功能不同的區段,以便更高效地管理內存資源和確保
    的頭像 發表于 03-14 17:37 ?356次閱讀
    快速搞懂<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>程序</b><b class='flag-5'>內存</b>分區!

    EE-62:在C語言中訪問短字內存

    電子發燒友網站提供《EE-62:在C語言中訪問短字內存.pdf》資料免費下載
    發表于 01-07 14:02 ?0次下載
    EE-62:在<b class='flag-5'>C</b><b class='flag-5'>語言</b>中訪問短字<b class='flag-5'>內存</b>

    虛擬內存溢出該怎么處理 虛擬內存在服務器的應用

    在現代計算機系統,虛擬內存是一種重要的資源管理技術,它允許系統使用硬盤空間來擴展物理內存的容量。然而,當系統運行的程序和進程超出了物理內存
    的頭像 發表于 12-04 09:49 ?592次閱讀

    虛擬內存對計算機性能的影響

    在現代計算機系統內存管理是確保系統高效運行的關鍵因素之一。虛擬內存技術作為內存管理的核心組成部分,對于提升計算機性能和用戶體驗起著至關重要的作用。 一、虛擬
    的頭像 發表于 12-04 09:17 ?2812次閱讀

    什么是虛擬內存分頁 Windows系統虛擬內存優化方法

    虛擬內存分頁概述 在Windows操作系統,虛擬內存是通過分頁機制實現的。分頁允許系統將內存的數據移動到硬盤上,以便為當前運行的
    的頭像 發表于 12-04 09:16 ?1052次閱讀

    虛擬內存的作用和原理 如何調整虛擬內存設置

    虛擬內存,也稱為虛擬內存管理或頁面文件,是計算機操作系統的一種內存管理技術。它允許系統使用硬盤空間作為額外的RAM(隨機存取存儲器),以彌補物理
    的頭像 發表于 12-04 09:13 ?1631次閱讀

    解讀版|Air780E軟件C語言內存數組的神秘面紗!

    今天我們來揭開Air780E 軟件 C 語言內存數組的神秘面紗,希望有所收獲。
    的頭像 發表于 11-17 10:00 ?475次閱讀
    解讀版|Air780E軟件<b class='flag-5'>中</b><b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>內存</b>數組的神秘面紗!

    邏輯內存和物理內存的區別

    邏輯內存和物理內存是計算機系統兩個重要的概念,它們在計算機的運行和數據處理起著至關重要的作用。 1. 物理
    的頭像 發表于 09-27 15:38 ?1364次閱讀

    內存時鐘和內存條有什么不同

    在探討內存時鐘(Memory Clock)和內存條(Memory Module)的不同時,我們首先需要明確這兩個概念的基本定義和它們在計算機系統的角色。以下是對這兩個
    的頭像 發表于 09-04 11:45 ?2552次閱讀

    如何自定義內存控制器的設置

    策略都有其特定的使用場景和優缺點。以下是一些步驟和建議,用于自定義內存控制器的設置: 1. 選擇合適的內存分配策略 heap_1 :最簡單的內存分配策略,但分配的內存不允許釋放。適用于
    的頭像 發表于 09-02 14:28 ?723次閱讀

    堆棧和內存的基本知識

    本文主要聊聊關于堆棧的內容。包括堆棧和內存的基本知識。常見和堆棧相關的 bug,如溢出,內存泄漏,堆內存分配失敗等。后面介紹軟件堆棧統計
    的頭像 發表于 08-29 14:10 ?769次閱讀
    堆棧和<b class='flag-5'>內存</b>的基本知識

    使用RTC內存的用戶區域來存儲值,發現某些區域已損壞或無法寫入,為什么?

    我正在嘗試使用RTC內存的用戶區域來存儲值,但我發現某些區域已損壞或無法寫入。 我正在使用 NonOS SDK 2.2.1,并編寫了一個小程序來將隨機大小的數據塊寫入 RTC 用戶
    發表于 07-09 06:39

    你知道嗎? 51單片機也有動態內存分配

    一、簡述其實在51單片機也可以使用動態內存動態內存其實就是劃出一塊內存區域,將這塊內存進行管
    的頭像 發表于 04-26 08:10 ?1896次閱讀
    你知道嗎? 51單片機也有<b class='flag-5'>動態內存</b>分配
    主站蜘蛛池模板: 日本一区视频在线观看 | 亚洲成a人片7777 | 国产性大片黄在线观看在线放 | 看黄在线 | 午夜两性网 | 精品卡一卡二 卡四卡视频 精品噜噜噜噜久久久久久久久 | 男人午夜免费视频 | 欧美日韩一级视频 | 毛片网站免费在线观看 | 手机在线观看你懂的 | 国产免费人人看大香伊 | 黄网站视频观看免费 | 激情五月激情综合网 | 狠狠色丁香婷婷综合欧美 | 狠狠色狠狠色综合网 | 国模精品视频 | 最新人妖shemaletube人妖 最新日本免费一区二区三区中文 | 巨臀中文字幕一区二区翘臀 | 国产在线色视频 | www.xxx国产| 天天操综合网 | 美女18毛片 | 久久国产成人午夜aⅴ影院 久久国产福利 | 中文字幕在线看精品乱码 | 丁香六月纪婷婷激情综合 | 国产欧美乱码在线看 | 五月婷婷六月色 | 成年人在线网站 | 一区二区三区免费视频网站 | 日本写真高清视频免费网站网 | 久久99精品久久久久久秒播 | 国产女人在线视频 | 欧美猛交喷潮在线播放 | 欧美大片一区二区三区 | 色姑娘天天干 | 色综合天天色综合 | 久久精品亚洲热综合一本奇米 | 天堂网www在线资源链接 | bt天堂在线www中文在线 | 中文字幕在线观看一区二区 | 色婷婷激情五月 |