日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式客棧
[導(dǎo)讀]C語言內(nèi)存管理指對系統(tǒng)內(nèi)存的分配、創(chuàng)建、使用這一系列操作。在內(nèi)存管理中,由于是操作系統(tǒng)內(nèi)存,使用不當(dāng)會造成畢竟麻煩的結(jié)果。本文將從系統(tǒng)內(nèi)存的分配、創(chuàng)建出發(fā),并且使用例子來舉例說明內(nèi)存管理不當(dāng)會出現(xiàn)的情況及解決辦法。一、內(nèi)存在計算機(jī)中,每個應(yīng)用程序之間的內(nèi)存是相互獨立的,通常情況下...

C 語言內(nèi)存管理指對系統(tǒng)內(nèi)存的分配、創(chuàng)建、使用這一系列操作。在內(nèi)存管理中,由于是操作系統(tǒng)內(nèi)存,使用不當(dāng)會造成畢竟麻煩的結(jié)果。本文將從系統(tǒng)內(nèi)存的分配、創(chuàng)建出發(fā),并且使用例子來舉例說明內(nèi)存管理不當(dāng)會出現(xiàn)的情況及解決辦法。

一、內(nèi)存

在計算機(jī)中,每個應(yīng)用程序之間的內(nèi)存是相互獨立的,通常情況下應(yīng)用程序 A 并不能訪問應(yīng)用程序 B,當(dāng)然一些特殊技巧可以訪問,但此文并不詳細(xì)進(jìn)行說明。例如在計算機(jī)中,一個視頻播放程序與一個瀏覽器程序,它們的內(nèi)存并不能訪問,每個程序所擁有的內(nèi)存是分區(qū)進(jìn)行管理的。

在計算機(jī)系統(tǒng)中,運(yùn)行程序 A 將會在內(nèi)存中開辟程序 A 的內(nèi)存區(qū)域 1,運(yùn)行程序 B 將會在內(nèi)存中開辟程序 B 的內(nèi)存區(qū)域 2,內(nèi)存區(qū)域 1 與內(nèi)存區(qū)域 2 之間邏輯分隔。

1.1 內(nèi)存四區(qū)

在程序 A 開辟的內(nèi)存區(qū)域 1 會被分為幾個區(qū)域,這就是內(nèi)存四區(qū),內(nèi)存四區(qū)分為棧區(qū)、堆區(qū)、數(shù)據(jù)區(qū)與代碼區(qū)。

棧區(qū)指的是存儲一些臨時變量的區(qū)域,臨時變量包括了局部變量、返回值、參數(shù)、返回地址等,當(dāng)這些變量超出了當(dāng)前作用域時將會自動彈出。該棧的最大存儲是有大小的,該值固定,超過該大小將會造成棧溢出。

堆區(qū)指的是一個比較大的內(nèi)存空間,主要用于對動態(tài)內(nèi)存的分配;在程序開發(fā)中一般是開發(fā)人員進(jìn)行分配與釋放,若在程序結(jié)束時都未釋放,系統(tǒng)將會自動進(jìn)行回收。

數(shù)據(jù)區(qū)指的是主要存放全局變量、常量和靜態(tài)變量的區(qū)域,數(shù)據(jù)區(qū)又可以進(jìn)行劃分,分為全局區(qū)與靜態(tài)區(qū)。全局變量與靜態(tài)變量將會存放至該區(qū)域。

代碼區(qū)就比較好理解了,主要是存儲可執(zhí)行代碼,該區(qū)域的屬性是只讀的。

1.2 使用代碼證實內(nèi)存四區(qū)的底層結(jié)構(gòu)

由于棧區(qū)與堆區(qū)的底層結(jié)構(gòu)比較直觀的表現(xiàn),在此使用代碼只演示這兩個概念。首先查看代碼觀察棧區(qū)的內(nèi)存地址分配情況:

#include
int?main()
{
?int?a?=?0;
?int?b?=?0;
?char?c='0';
?printf("變量a的地址是:%d\n變量b的地址是:%d\n變量c的地址是:%d\n",?
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉