亚洲av成人精品日韩一区,97久久久精品综合88久久,玩弄japan白嫩少妇hd,亚洲av片不卡无码久久,玩弄人妻少妇500系列

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語(yǔ)言程序的動(dòng)態(tài)內(nèi)存中棧內(nèi)存區(qū)域的概念

電子工程師 ? 來(lái)源:?jiǎn)纹瑱C(jī)匠人 ? 作者:蔡琰老師 ? 2021-06-29 10:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

C語(yǔ)言程序的動(dòng)態(tài)內(nèi)存分為棧內(nèi)存區(qū)域和堆內(nèi)存區(qū)域兩種。棧內(nèi)存是由編譯器管理的,而堆內(nèi)存是由程序調(diào)用具體的庫(kù)函數(shù)管理的。我們今天分析下棧內(nèi)存的概念。

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

棧指針是一個(gè)指向棧區(qū)域內(nèi)部的指針,也就是它的值是一個(gè)地址,這個(gè)地址位于棧區(qū)的下界和棧區(qū)的上界之間。棧指針把這個(gè)棧區(qū)域分為兩個(gè)部分,一個(gè)是已經(jīng)使用的區(qū)域,一個(gè)是沒(méi)有使用的區(qū)域。

對(duì)于棧內(nèi)存的增長(zhǎng)方向有兩種:一種是向上增長(zhǎng)的,也就是低地址向高地址增長(zhǎng);另一個(gè)是向下增長(zhǎng)的,高地址向低地址增長(zhǎng)。在目前常見(jiàn)的體系結(jié)構(gòu)和編譯系統(tǒng)中,棧大多是向下增長(zhǎng)的,我們也是看下這種常見(jiàn)的增長(zhǎng)形式。在初始階段,棧指針是指向棧區(qū)間的上界。隨著棧使用量的增加,棧指針的值將向低地址移動(dòng),也就是在變小。

棧內(nèi)存在使用過(guò)程中有一個(gè)重要的特性是先入后出,也就是后入棧的內(nèi)容將先出棧,而先入棧的后出棧。類似于一個(gè)口的瓶子,先進(jìn)去的在底下,要想底下的出來(lái)就先把上面的先倒出來(lái)。

入棧的過(guò)程和出棧的過(guò)程我們安全用圖形來(lái)表示,更形象些吧~

在入棧的過(guò)程中,如果棧指針的變化超出棧內(nèi)存的區(qū)域,將發(fā)生棧溢出。

從圖中看出棧指針的功能是標(biāo)識(shí)當(dāng)前的棧位置。對(duì)棧內(nèi)存處理中,每次能夠獲取的內(nèi)容都是最后可放入棧內(nèi)存的內(nèi)容,而每次放入棧內(nèi)存中的內(nèi)容都將位于棧區(qū)域的最后。

總的來(lái)說(shuō)其實(shí)棧是一個(gè)先入后出的內(nèi)存區(qū)域,棧指針是提供一種硬件的內(nèi)存機(jī)制。

還有一個(gè)大家可能都沒(méi)聽(tīng)說(shuō)過(guò),或者都沒(méi)關(guān)注過(guò)的,我們來(lái)一起了解一下,就是滿棧和空棧的概念,我們還是通過(guò)圖來(lái)形容一下,這個(gè)是由處理器的體系結(jié)構(gòu)決定的。與程序的編寫沒(méi)有關(guān)系,甚至編譯器都不需要關(guān)注這個(gè)問(wèn)題。無(wú)論在哪種情況下,棧指針都是已經(jīng)使用的棧區(qū)域和未使用的棧區(qū)域的分界線。

在滿棧的情況:棧指針當(dāng)前的位置是已經(jīng)使用的棧區(qū)域。

在空棧的情況:棧指針當(dāng)期的位置是沒(méi)有使用的棧區(qū)域。

這個(gè)僅供大家了解下就可以了,畢竟對(duì)于我們大多數(shù)人來(lái)說(shuō)都是應(yīng)用者,多了解點(diǎn)底層的總沒(méi)錯(cuò),但也不必太深挖。對(duì)于棧內(nèi)存的概念我就分享到這里,其實(shí)這個(gè)對(duì)于寫匯編的人來(lái)說(shuō)就很有用處了,或者去多讀一些匯編就很能清楚棧內(nèi)存的妙用了。

后續(xù)我分享堆內(nèi)存的一些概念,話說(shuō)知識(shí)是一點(diǎn)點(diǎn)積累的過(guò)程,有時(shí)候覺(jué)得前面有的知識(shí)點(diǎn)懵懵懂懂的突然連起來(lái)就又通透了。這就是堅(jiān)持學(xué)習(xí)的作用,希望大家都能堅(jiān)持多學(xué),才能更會(huì)用。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141763
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3826

    瀏覽量

    82988

原文標(biāo)題:C語(yǔ)言中的動(dòng)態(tài)內(nèi)存-----棧內(nèi)存

文章出處:【微信號(hào):gh_e7f294a514ca,微信公眾號(hào):?jiǎn)纹瑱C(jī)匠人】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    IEC61508系統(tǒng)動(dòng)態(tài)內(nèi)存使用

    IEC 61508標(biāo)準(zhǔn)強(qiáng)烈推薦使用靜態(tài)內(nèi)存管理方式。在安全應(yīng)用設(shè)計(jì),我們都在遵循這個(gè)建議。
    的頭像 發(fā)表于 04-11 15:17 ?938次閱讀
    IEC61508系統(tǒng)<b class='flag-5'>中</b>的<b class='flag-5'>動(dòng)態(tài)內(nèi)存</b>使用

    如何使用LAX_CODEGEN啟用動(dòng)態(tài)內(nèi)存分配?

    我目前正在探索NXP_MBDToolbox_LAX。lax_codegen 生成的代碼基于靜態(tài)分配。我想管理大型向量,如何使用 LAX_CODEGEN 啟用動(dòng)態(tài)內(nèi)存分配?
    發(fā)表于 04-10 08:09

    快速搞懂C語(yǔ)言程序內(nèi)存分區(qū)!

    程序運(yùn)行過(guò)程,操作系統(tǒng)會(huì)根據(jù)程序的需要,將內(nèi)存劃分為多個(gè)功能不同的區(qū)段,以便更高效地管理內(nèi)存資源和確保
    的頭像 發(fā)表于 03-14 17:37 ?668次閱讀
    快速搞懂<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>程序</b><b class='flag-5'>內(nèi)存</b>分區(qū)!

    EE-62:在C語(yǔ)言中訪問(wèn)短字內(nèi)存

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

    虛擬內(nèi)存溢出該怎么處理 虛擬內(nèi)存在服務(wù)器的應(yīng)用

    在現(xiàn)代計(jì)算機(jī)系統(tǒng),虛擬內(nèi)存是一種重要的資源管理技術(shù),它允許系統(tǒng)使用硬盤空間來(lái)擴(kuò)展物理內(nèi)存的容量。然而,當(dāng)系統(tǒng)運(yùn)行的程序和進(jìn)程超出了物理內(nèi)存
    的頭像 發(fā)表于 12-04 09:49 ?825次閱讀

    虛擬內(nèi)存對(duì)計(jì)算機(jī)性能的影響

    在現(xiàn)代計(jì)算機(jī)系統(tǒng),內(nèi)存管理是確保系統(tǒng)高效運(yùn)行的關(guān)鍵因素之一。虛擬內(nèi)存技術(shù)作為內(nèi)存管理的核心組成部分,對(duì)于提升計(jì)算機(jī)性能和用戶體驗(yàn)起著至關(guān)重要的作用。 一、虛擬
    的頭像 發(fā)表于 12-04 09:17 ?3487次閱讀

    什么是虛擬內(nèi)存分頁(yè) Windows系統(tǒng)虛擬內(nèi)存優(yōu)化方法

    虛擬內(nèi)存分頁(yè)概述 在Windows操作系統(tǒng),虛擬內(nèi)存是通過(guò)分頁(yè)機(jī)制實(shí)現(xiàn)的。分頁(yè)允許系統(tǒng)將內(nèi)存的數(shù)據(jù)移動(dòng)到硬盤上,以便為當(dāng)前運(yùn)行的
    的頭像 發(fā)表于 12-04 09:16 ?1463次閱讀

    虛擬內(nèi)存的作用和原理 如何調(diào)整虛擬內(nèi)存設(shè)置

    虛擬內(nèi)存,也稱為虛擬內(nèi)存管理或頁(yè)面文件,是計(jì)算機(jī)操作系統(tǒng)的一種內(nèi)存管理技術(shù)。它允許系統(tǒng)使用硬盤空間作為額外的RAM(隨機(jī)存取存儲(chǔ)器),以彌補(bǔ)物理內(nèi)
    的頭像 發(fā)表于 12-04 09:13 ?2520次閱讀

    C語(yǔ)言中申請(qǐng)的堆內(nèi)存能不能自動(dòng)釋放

    C語(yǔ)言中申請(qǐng)的堆內(nèi)存能不能自動(dòng)釋放?每次都要手動(dòng) free 太麻煩,也容易忘記。 學(xué)過(guò) C++ 的同學(xué),應(yīng)該首先能想到智能指針。 但是這是C
    的頭像 發(fā)表于 11-27 09:33 ?526次閱讀

    解讀版|Air780E軟件C語(yǔ)言內(nèi)存數(shù)組的神秘面紗!

    今天我們來(lái)揭開(kāi)Air780E 軟件 C 語(yǔ)言內(nèi)存數(shù)組的神秘面紗,希望有所收獲。
    的頭像 發(fā)表于 11-17 10:00 ?647次閱讀
    解讀版|Air780E軟件<b class='flag-5'>中</b><b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>內(nèi)存</b>數(shù)組的神秘面紗!

    邏輯內(nèi)存和物理內(nèi)存的區(qū)別

    邏輯內(nèi)存和物理內(nèi)存是計(jì)算機(jī)系統(tǒng)兩個(gè)重要的概念,它們?cè)谟?jì)算機(jī)的運(yùn)行和數(shù)據(jù)處理起著至關(guān)重要的作用。 1. 物理
    的頭像 發(fā)表于 09-27 15:38 ?1784次閱讀

    內(nèi)存時(shí)鐘和內(nèi)存條有什么不同

    在探討內(nèi)存時(shí)鐘(Memory Clock)和內(nèi)存條(Memory Module)的不同時(shí),我們首先需要明確這兩個(gè)概念的基本定義和它們?cè)谟?jì)算機(jī)系統(tǒng)的角色。以下是對(duì)這兩個(gè)
    的頭像 發(fā)表于 09-04 11:45 ?3558次閱讀

    反射內(nèi)存卡原理說(shuō)明

    區(qū)域,多個(gè)連接到網(wǎng)絡(luò)的節(jié)點(diǎn)都可以訪問(wèn)這個(gè)區(qū)域。當(dāng)一個(gè)節(jié)點(diǎn)向其本地的反射內(nèi)存寫入數(shù)據(jù)時(shí),該數(shù)據(jù)會(huì)被迅速?gòu)V播到網(wǎng)絡(luò)的其他節(jié)點(diǎn)。數(shù)據(jù)廣播機(jī)制通過(guò)高速的通信介質(zhì)(如光纖)
    的頭像 發(fā)表于 09-04 10:19 ?764次閱讀
    反射<b class='flag-5'>內(nèi)存</b>卡原理說(shuō)明

    如何自定義內(nèi)存控制器的設(shè)置

    策略都有其特定的使用場(chǎng)景和優(yōu)缺點(diǎn)。以下是一些步驟和建議,用于自定義內(nèi)存控制器的設(shè)置: 1. 選擇合適的內(nèi)存分配策略 heap_1 :最簡(jiǎn)單的內(nèi)存分配策略,但分配的內(nèi)存不允許釋放。適用于
    的頭像 發(fā)表于 09-02 14:28 ?933次閱讀

    堆棧和內(nèi)存的基本知識(shí)

    本文主要聊聊關(guān)于堆棧的內(nèi)容。包括堆棧和內(nèi)存的基本知識(shí)。常見(jiàn)和堆棧相關(guān)的 bug,如溢出,內(nèi)存泄漏,堆內(nèi)存分配失敗等。后面介紹軟件堆棧統(tǒng)計(jì)
    的頭像 發(fā)表于 08-29 14:10 ?1046次閱讀
    堆棧和<b class='flag-5'>內(nèi)存</b>的基本知識(shí)