99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

C/C++中的內(nèi)存區(qū)域劃分

汽車(chē)玩家 ? 來(lái)源:黑馬程序員 ? 作者:黑馬程序員 ? 2020-05-05 18:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 代碼區(qū)

存放 CPU 執(zhí)行的機(jī)器指令。通常代碼區(qū)是可共享的(即另外的執(zhí)行程序可以調(diào)用它),使其可共享的目的是對(duì)于頻繁被執(zhí)行的程序,只需要在內(nèi)存中有一份代碼即可。代碼區(qū)通常是只讀的,使其只讀的原因是防止程序意外地修改了它的指令。另外,代碼區(qū)還規(guī)劃了局部變量的相關(guān)信息。

總結(jié):你所寫(xiě)的所有代碼都會(huì)放入到代碼區(qū)中,代碼區(qū)的特點(diǎn)是共享和只讀。

2 全局區(qū)

全局區(qū)中主要存放的數(shù)據(jù)有:全局變量、靜態(tài)變量、常量(如字符串常量)

全局區(qū)的叫法有很多:全局區(qū)、靜態(tài)區(qū)、數(shù)據(jù)區(qū)、全局靜態(tài)區(qū)、靜態(tài)全局區(qū)

這部分可以細(xì)分為data區(qū)和bss區(qū)

2.1 data區(qū)

data區(qū)里主要存放的是已經(jīng)初始化的全局變量、靜態(tài)變量和常量

2.2 bss區(qū)

bss區(qū)主要存放的是未初始化的全局變量、靜態(tài)變量,這些未初始化的數(shù)據(jù)在程序執(zhí)行前會(huì)自動(dòng)被系統(tǒng)初始化為0或者NULL

2.3 常量區(qū)

常量區(qū)是全局區(qū)中劃分的一個(gè)小區(qū)域,里面存放的是常量,如const修飾的全局變量、字符串常量等

在VS下運(yùn)行結(jié)果如下:

C/C++中的內(nèi)存區(qū)域劃分

C/C++中的內(nèi)存區(qū)域劃分

C/C++中的內(nèi)存區(qū)域劃分

總結(jié):全局區(qū)存放的是全局變量、靜態(tài)變量和常量

在程序運(yùn)行后由產(chǎn)生了兩個(gè)區(qū)域,棧區(qū)和堆區(qū)

3 棧區(qū)(stack)

棧是一種先進(jìn)后出的內(nèi)存結(jié)構(gòu),由編譯器自動(dòng)分配釋放,存放函數(shù)的參數(shù)值、返回值、局部變量等。在程序運(yùn)行過(guò)程中實(shí)時(shí)加載和釋放,因此,局部變量的生存周期為申請(qǐng)到釋放該段??臻g。

vs運(yùn)行效果如下

C/C++中的內(nèi)存區(qū)域劃分

C/C++中的內(nèi)存區(qū)域劃分

4 堆區(qū)(heap)

堆是一個(gè)大容器,它的容量要遠(yuǎn)遠(yuǎn)大于棧,但沒(méi)有棧那樣先進(jìn)后出的順序。用于動(dòng)態(tài)內(nèi)存分配。堆在內(nèi)存中位于BSS區(qū)和棧區(qū)之間。一般由程序員分配和釋放,若程序員不釋放,程序結(jié)束時(shí)由操作系統(tǒng)回收。

vs運(yùn)行效果如下:

C/C++中的內(nèi)存區(qū)域劃分

C/C++中的內(nèi)存區(qū)域劃分

當(dāng)我們把幾個(gè)案例放在一起執(zhí)行,就可以看到內(nèi)存將每個(gè)區(qū)域劃分的很有條理。每個(gè)區(qū)域互不干涉,區(qū)域中的數(shù)據(jù)地址也是非常接近的

C/C++中的內(nèi)存區(qū)域劃分

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11077

    瀏覽量

    217031
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3123

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    在OpenVINO? C++代碼啟用 AddressSanitizer 時(shí)的內(nèi)存泄漏怎么解決?

    在 OpenVINO? C++代碼啟用 AddressSanitizer 時(shí)遇到內(nèi)存泄漏: \"#0 0xaaaab8558370 in operator new(unsigned
    發(fā)表于 06-23 07:16

    主流的 MCU 開(kāi)發(fā)語(yǔ)言為什么是 C 而不是 C++?

    在單片機(jī)的地界兒里,C語(yǔ)言穩(wěn)坐中軍帳,C++想分杯羹?難嘍。咱電子工程師天天跟那針尖大的內(nèi)存空間較勁,C++那些花里胡哨的玩意兒,在這兒真玩不轉(zhuǎn)。先說(shuō)
    的頭像 發(fā)表于 05-21 10:33 ?442次閱讀
    主流的 MCU 開(kāi)發(fā)語(yǔ)言為什么是 <b class='flag-5'>C</b> 而不是 <b class='flag-5'>C++</b>?

    Spire.XLS for C++組件說(shuō)明

    Spire.XLS for C++ 是一款專業(yè)的 C++ Excel 組件,可以用在各種 C++ 框架和應(yīng)用程序。Spire.XLS for C+
    的頭像 發(fā)表于 01-14 09:40 ?619次閱讀
    Spire.XLS for <b class='flag-5'>C++</b>組件說(shuō)明

    EE-112:模擬C++的類(lèi)實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《EE-112:模擬C++的類(lèi)實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 01-03 15:15 ?0次下載
    EE-112:模擬<b class='flag-5'>C++</b><b class='flag-5'>中</b>的類(lèi)實(shí)現(xiàn)

    同樣是函數(shù),在CC++中有什么區(qū)別

    同樣是函數(shù),在 CC++ 中有什么區(qū)別? 第一個(gè)返回值。 C語(yǔ)言的函數(shù)可以不寫(xiě)返回值類(lèi)型,編譯器會(huì)默認(rèn)為返回 int。 但是 C++ 的函數(shù),除了構(gòu)造和析構(gòu)這兩個(gè)特殊的函數(shù),必須
    的頭像 發(fā)表于 11-29 10:25 ?909次閱讀

    C7000 C/C++優(yōu)化指南用戶手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《C7000 C/C++優(yōu)化指南用戶手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 11-09 15:00 ?0次下載
    <b class='flag-5'>C</b>7000 <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>優(yōu)化指南用戶手冊(cè)

    TMS320C6000優(yōu)化C/C++編譯器v8.3.x

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000優(yōu)化C/C++編譯器v8.3.x.pdf》資料免費(fèi)下載
    發(fā)表于 11-01 09:35 ?1次下載
    TMS320<b class='flag-5'>C</b>6000優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器v8.3.x

    TMS320C28x優(yōu)化C/C++編譯器v22.6.0.LTS

    電子發(fā)燒友網(wǎng)站提供《TMS320C28x優(yōu)化C/C++編譯器v22.6.0.LTS.pdf》資料免費(fèi)下載
    發(fā)表于 10-31 10:10 ?0次下載
    TMS320<b class='flag-5'>C</b>28x優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器v22.6.0.LTS

    C語(yǔ)言和C++結(jié)構(gòu)體的區(qū)別

    同樣是結(jié)構(gòu)體,看看在C語(yǔ)言和C++中有什么區(qū)別?
    的頭像 發(fā)表于 10-30 15:11 ?767次閱讀

    C7000優(yōu)化C/C++編譯器

    電子發(fā)燒友網(wǎng)站提供《C7000優(yōu)化C/C++編譯器.pdf》資料免費(fèi)下載
    發(fā)表于 10-30 09:45 ?0次下載
    <b class='flag-5'>C</b>7000優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器

    使用OpenVINO GenAI API在C++構(gòu)建AI應(yīng)用程序

    許多桌面應(yīng)用程序是使用 C++ 開(kāi)發(fā)的,而將生成式AI(GenAI)功能集成到這些應(yīng)用程序可能會(huì)很具有挑戰(zhàn)性,尤其是因?yàn)槭褂孟?Hugging Face 這樣的 Python 庫(kù)的復(fù)雜性。C++
    的頭像 發(fā)表于 10-12 09:36 ?1123次閱讀
    使用OpenVINO GenAI API在<b class='flag-5'>C++</b><b class='flag-5'>中</b>構(gòu)建AI應(yīng)用程序

    ostream在c++的用法

    ostream 是 C++ 標(biāo)準(zhǔn)庫(kù)中一個(gè)非常重要的類(lèi),它位于 頭文件(實(shí)際上,更常見(jiàn)的是通過(guò)包含 頭文件來(lái)間接包含 ,因?yàn)?包含了 和 )。 ostream 類(lèi)及其派生類(lèi)(如 std::cout
    的頭像 發(fā)表于 09-20 15:11 ?1937次閱讀

    OpenVINO2024 C++推理使用技巧

    很多人都使用OpenVINO新版的C++ 或者Python的SDK,都覺(jué)得非常好用,OpenVINO2022之后的版本C++ SDK做了大量的優(yōu)化與整理,已經(jīng)是非常貼近開(kāi)發(fā)的使用習(xí)慣與推理方式。與OpenCV的Mat對(duì)象對(duì)接方式更是幾乎無(wú)縫對(duì)接,非常的方便好用。
    的頭像 發(fā)表于 07-26 09:20 ?1567次閱讀

    C++語(yǔ)言基礎(chǔ)知識(shí)

    電子發(fā)燒友網(wǎng)站提供《C++語(yǔ)言基礎(chǔ)知識(shí).pdf》資料免費(fèi)下載
    發(fā)表于 07-19 10:58 ?10次下載

    C++實(shí)現(xiàn)類(lèi)似instanceof的方法

    函數(shù),可實(shí)際上C++沒(méi)有。但是別著急,其實(shí)C++中有兩種簡(jiǎn)單的方法可以實(shí)現(xiàn)類(lèi)似Java的instanceof的功能。 在 C++
    的頭像 發(fā)表于 07-18 10:16 ?941次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>中</b>實(shí)現(xiàn)類(lèi)似instanceof的方法