Linux程式記憶體空間分配

2021-06-21 15:01:26 字數 1429 閱讀 9839



先來看一段簡單**:

#include #include int main()

執行結果:

這時另開乙個終端,輸入cat /proc/10073/maps,出現如下顯示:

實際上,第一行是**區所佔的記憶體空間,804800-804900,實際上幾乎所有的linux程式**段都是從804800開始的,第二行是全域性棧區所佔的記憶體空間,第三行是堆空間所佔的記憶體空間,最後一行是區域性棧所佔的記憶體空間。

同時,我們會發現除了**段的許可權是r-xp(可讀-不可寫-可執行-私有保護)之外,其他三個都是不可執行的。

程式記憶體空間的分配

關於程式記憶體空間的分配 mcu的memory中分為不同的area,比如說rl78 g14的memory map如下圖 其中不同的memory area有不同的用途。按照從下向上的順序 1 code flash memory 這個顧名思義就是目標程式所佔據的位置。這裡應該更確切的說一下,程式中涉及到...

分配記憶體空間

void calloc size t nobj,size t size 分配足夠的記憶體給nobj個大小為size的物件組成的陣列,並返回指向所分配區域的第乙個位元組的指標 若記憶體不夠,則返回null.該空間的初始化大小為0位元組.char p char calloc 100,sizeof cha...

記憶體空間與分配

1 記憶體分配錯誤 動態記憶體分配錯誤有兩種基本型別 記憶體錯誤和記憶體洩漏。1 記憶體錯誤 當乙個指標或者該指標所指向的記憶體單元成為無效單元,或者記憶體中分配的資料結構被破壞時,就會造成記憶體錯誤。指標未被初始化,指標被初始化為乙個無效位址,指標被不小心錯誤地修改,在與指標相關聯的記憶體區域被釋...