C與C 的儲存區

2021-10-09 17:02:58 字數 603 閱讀 1752

c++儲存區

全域性變數與靜態變數區、常量區、區域性變數區(棧)、動態儲存區(堆)、自由儲存區

1、全域性變數與靜態變數區 —》存放全域性變數、靜態變數,程式執行結束後釋放

2、常量區(文字區) —》存放常量

3、區域性變數區(棧) —》存放區域性變數、函式引數。由編譯器控制,自動分配和釋放

4、動態儲存區(堆) —》malloc/free在堆儲存區上申請和釋放記憶體,由人控制

5、自由儲存區 —》new/delete/delete 在自由儲存區(是一種概念抽象,具體取決於底層實現)上申請和釋放記憶體,由人控制

c儲存區

1、棧區stack —> 增長方向,自頂向下增長,自動變數、臨時變數、以及每次函式呼叫時所需要儲存的資訊

2 、堆區heap —》增長方向,自底向上增長,動態儲存分配

3、未初始化資料段(bbs區) —》 block started by symbol 在程式中沒有初始化的全域性變數,核心將此段初始化為0

4、初始化資料段(data區)—》 在程式中所有賦了初值的全域性變數(包括靜態變數)存放在這裡

5、正文段(常量區)—》 cpu執行的機器指令部分,乙個程式只有乙個副本,唯讀,防止程式由於意外而修改自身指令

C的儲存區

1 概述 在c中一般分為這幾個儲存區 1 段區域 code segment 放置程式 的區域,沒有什麼好多說的 2 常量區域 放置程式中的常量,如以const作為字首定義的,中形如 abcdef 的字串,該區域內存在程式結束時釋放 3 初始化的全域性 靜態區域 全域性變數和靜態變數的儲存是放在一塊的...

C 自由儲存區與堆

談到自由儲存區與堆的區別,就需要了解new與malloc的區別。實際上堆是c語言的關鍵術語,是作業系統所維護的一塊特殊記憶體,它提供了動態分配的功能。使用者使用malloc進行堆記憶體申請,使用free實現堆記憶體的釋放。但自由儲存區不同,它是c 中的乙個抽象的概念。c 中規定使用new delet...

C 資料儲存區

段 也稱文字段 用來存放程式執行 的記憶體區。這部分區域的大小在程式執行前就已經確定,並且記憶體區域通常屬於唯讀,某些架構也允許 段為可寫,即允許修改程式。在 段中,也有可能包含一些唯讀的常數變數,例如字串常量等。棧 stack 就是那些由編譯器在需要的時候分配,在不需要的時候自動清除的變數的儲存區...