c c 中二維資料的動態建立與釋放

2021-09-19 09:11:56 字數 1386 閱讀 8979

給陣列動態分配記憶體或者初始化,是因為我們不知道要分配多少個數

1,c語言中動態的分配二維陣列

使用malloc()、free()函式進行動態分配,這兩個函式包含於stdlib.h或malloc.h中

假如要申請乙個3行5列的二維陣列記憶體

#include int main()

return 0;

}

釋放記憶體:

1 // 先釋放每列

2 for(int i = 0; i < 3; i++)

3 free(a[i]);

4 // 再釋放每行

5 free(a);

6 a = null; // 賦空

以上**:

一直對二維陣列 動態分配問題比較模糊,今天來終結一下。

我們一般使用二維陣列可以直接定義如下:

#includeusing namespace std;

int main()

但是有時候我們不知道陣列的維數,c++不允許直接用變數作為維數,所以就要用到動態分配。我們先看看如何動態申請乙個一維陣列。

int* array=new int[10];
上述兩行**的意思就是用new申請 10個 int 型別的空間,然後返回這段空間的首位址,將這個位址賦給array。array是乙個指向int 型的指標,且指向那塊申請的空間。

申請二維陣列需要對指標的理解比較透徹,**如下:

int row=3;

int col=5;

int** array=new int* [row]; //先申請乙個一維陣列

//再接著迴圈在陣列裡面申請陣列

for(int i=0;i第3行先申請int* 型陣列的的空間,該空間存放的是int*型的指標變數,然後把這塊指標變數的空間首位址賦給array,

然後再給int* 型別的指標分別分配空間即可,如下圖:

關於二維陣列的釋放:

動態分配的記憶體需要我們手動釋放,**如下:

for(int i=0; i

很簡單就不再多講了。

以上內容裝載自: 

整個完整的**如下所示:

#include int main(void)

//初始化二維陣列

for (int i = 0; i < 3; ++i)

std::cout<}

//釋放二維陣列

for (int i = 0;i < 3;++i) //釋放

delete p;

system("pause");

return 0;

}

C C 開發 一維二維陣列的建立與釋放

一般情況,參 使用查詢的時候,資料量太小,都不會去管記憶體分配是否成功,因為分配的記憶體太小。但是我們逆向的時候,卻要將全部的資訊都要輸出,就不能和參 一樣的處理 我門要仔細的使用malloc 和free,否者很容易出現記憶體訪問錯誤 1 一維資料的建立與釋放 建立 v9 ptr dtccodeso...

動態建立和釋放二維陣列

c動態建立和釋放二維陣列 include include define row 5 define col 4 main int i int arr arr int malloc row sizeof int for i 0 i使用calloc申請記憶體時,記憶體會清0,而malloc並不進行這項工作...

動態建立和釋放二維陣列

define crt secure no warnings include include include 動態建立二維陣列,指標做輸出 int get2darr char arr out int row,int col for int i 0 i row i arr p 掛上 return 0 完...