在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...