關於c 的動態分配陣列

2021-09-12 20:09:21 字數 696 閱讀 2325

在c++中,陣列的長度的值應該是乙個具體的數字,不能是乙個變數。通常我們借助指標來給動態分配陣列

一維陣列

int n;

cin >> n;

int *a = new int[n]

二維陣列

int n;

cin >> n;

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

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

int n;

cin >> n;

char **a = new char*[n];

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

cout << &a[0] << endl << &a[1];

我們輸出結果發現0143d898 0143d89c相差4個位元組,恰好的是乙個指標的長度,說明動態分配的二維陣列,我們可以把他理解為乙個陣列,陣列的型別是指標,每乙個指標又指向乙個陣列。

char a[10][10] = ;

cout << &a[0] << endl << &a[1];

00b5f7d4  00b5f7de
這裡相差恰好是10 ,說明二維陣列的空間和一位陣列一樣都是連續分配的

動態分配陣列

注意,刪除操作不會刪除該指標 它刪除指標所指向的記憶體!動態分配陣列 動態陣列的宣告讓我們執行程式時選擇自己的大小。動態分配陣列,我們使用新的和刪除陣列形式 通常稱為新的 和 刪除 123 4int nsize 12 int pnarray new int nsize note nsize does...

動態分配陣列C 模板

通過動態分配的方法實現了動態陣列的建立,其中包括多種運算子過載。include define size 100 using namespace std template class array 有參建構函式,引數為陣列的長度 array int n length n 有參建構函式,引數為陣列的長度和...

C語言動態分配陣列

最近在研究c語言相關的東西,遇到了一些問題,主要是關於陣列記憶體分配的問題。我們最常用的陣列分配方式就是使用 int array 來分配固定長度的陣列,但是當需要動態分配陣列長度的時候怎麼辦呢?最近在使用的時候就遇到了,然後自己搜了搜相關的使用方法。1.先介紹基本資料型別的建立方法 int arra...