學習筆記之記憶體空間

2021-07-28 07:12:46 字數 650 閱讀 4843

組織程式的策略:

1.標頭檔案:可以放置以下內容

a.使用#define和const定義的符號常量

b.結構宣告

c.類宣告

d.函式原型

e.模板宣告

2.源**檔案:宣告中函式原型的函式的**。

3.源**檔案:呼叫函式的程式

其中第1、第2部分,即使用者定義型別的定義和操縱使用者定義型別的函式組成了軟體包,應用在各種程式中。

用#include指令將標頭檔案引入時注意:

1.用<>括起:在儲存標準標頭檔案的主機系統的檔案系統中查詢。

2.用" "括起:首先查詢當前的工作目錄或源**目錄。

根據資料保留在記憶體中的時間,c++在儲存資料時提供多種方案,總結如下表。

記憶體方案

宣告方式

存在週期

靜態儲存

在函式定義外定義或用static定義

存在於程式整個執行過程中

自動儲存

在函式定義中宣告(包括函式引數)

函式執行時建立,執行完釋放

動態儲存

通過new來建立

new建立,delete或程式結束時釋放

執行緒儲存(c++11新增)

用thread_local宣告

宣告週期與所屬執行緒一樣長

分配記憶體空間

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

C 記憶體空間

乙個c 程式編譯後占用的記憶體分為如下幾個部分 棧 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值。在乙個程序中,位於使用者虛擬位址空間頂部的是使用者棧,編譯器用它來實現函式的呼叫。堆 由程式設計師分配和釋放,若程式設計師不釋放,則程式結束時被os 存放由new,malloc分配的記憶體,可...

c 記憶體空間

題目 若char是一位元組,int是4位元組,指標型別是4位元組,如下 class ctest virtual void mem fun private char m chdata int m ndata static char s chdata char ctest s chdata 0 靜態成員...