c 的動態申請記憶體

2021-07-07 07:43:16 字數 629 閱讀 7314

//一維陣列動態申請,c陣列大小為: n

int *c=new int[n];

//二維陣列動態申請,b陣列大小為: n*p

int **b=new int*[n];

for(int i=0;ib[i]=new int[p];

//三維陣列動態申請, a陣列大小為: m*n*p:

int ***a=new int **[m];

for(i=0;i另外,當不再需要乙個動態分配的多維陣列時,可按以下步驟釋放它所占用的空間。首先釋放在for迴圈中為每一行所分

配的空間。然後釋放為行指標分配的空間。

//一維空間釋放:

delete c;

c=0; //可在釋放空間後將c置為0,以防繼續訪問已被釋放的空間。這句可以不要。

//二維空間釋放:

for (int i=0;idelete b[i];

delete b;

b=0; //可在釋放空間後將b置為0,以防繼續訪問已被釋放的空間。這句可以不要。

//三維空間釋放:

for (int i=0;idelete a;

a=0; //可在釋放空間後將a置為0,以防繼續訪問已被釋放的空間。這句可以不要。

動態申請記憶體

如果函式的引數是乙個指標,不要指望用該指標去申請動態記憶體。示例1中,test函式的語句getmemory str,100 並沒有使str獲得期望的記憶體,str依舊是null,為什麼?void getmemory char p,int num void test void 示例1 試圖用指標引數申...

malloc動態申請記憶體

1 malloc概述 malloc num 動態申請num位元組的記憶體空間,函式申請成功返回記憶體的起始位址 void型 申請不成功返回null指標,malloc不初始化記憶體空間 calloc type,num 函式會初始化申請的記憶體空間為0 使用完申請的記憶體後需要用free p 釋放記憶體...

C語言動態記憶體申請分析

1 c語言中的一切操作都是基於記憶體的 2 變數和陣列都是記憶體的別名 1 記憶體分配由編譯器在編譯期間決定 2 定義陣列的時候必須指定陣列的長度 3 陣列的長度是在編譯期間就必須確定的 1 malloc和free用於執行動態記憶體分配和釋放 2 malloc所分配的是一塊連續的記憶體 3 mall...