C 動態陣列

2021-06-18 06:35:23 字數 1169 閱讀 8273

原**:

1.變長一維陣列

這裡說的變長陣列是指在編譯時不能確定陣列長度,程式在執行時需要動態分配記憶體空間的陣列。實現變長陣列最簡單的是變長一維陣列,你可以這樣做:

1: //檔名: array01.cpp

2: #include

3: using namespace std;

4: int main()

5:

注意int *p=new int[len];這一句,你不能這樣做:

int p[len];

c++編譯器會報錯說len的大小不能確定,因為用這種形式宣告陣列,陣列的大小需要在編譯時確定。而且這樣也不行:

int p=new int[len];

編譯器會說不能把int*型轉化為int型,因為用new開闢了一段記憶體空間後會返回這段記憶體的首位址,所以要把這個位址賦給乙個指標,所以要用int *p=new int[len];

array01.cpp實現了乙個變長的一維陣列,但是要養成乙個好習慣,就是注意要登出指標p,使程式釋放用new開闢的記憶體空間。

當然使用c++標準模版庫(stl)中的vector(向量)也可以實現變長陣列:

1: //檔名: array02.cpp

2: #include

3: #include

4: using namespace std;

5: int main()

6:

29: cout<30: }

31: return 0;

32: }

執行結果:

input value for m,n,l:2 3 4

0: 00492fe0 1: 00492fe4 2: 00492fe8 3: 00492fec

1: 00492fa0 2: 00492fa4 3: 00492fa8 4: 00492fac

2: 00492f60 3: 00492f64 4: 00492f68 5: 00492f6c

1: 00492ec0 2: 00492ec4 3: 00492ec8 4: 00492ecc

2: 00492e80 3: 00492e84 4: 00492e88 5: 00492e8c

3: 00492e40 4: 00492e44 5: 00492e48 6: 00492e4c

c 動態陣列

在建立動態陣列的過程中我們要遵循乙個原則,那就是在建立的時候從外層往裡層,逐層建立 而釋放的時候從裡層往外層,逐層釋放。這個話你讀了可能理解並不深刻,不過不要急,接下來我們看看兩段 一維動態陣列的建立 include include int main int n1,i int array print...

c 動態陣列

這學期學c 晚上有道程式設計題,比較坑,感覺要用動態陣列做,但實際就是要用靜態陣列,因為動態的反而更難了。用動態陣列的時候,發現自己只會建立一維的 int a new int 5 然後二維陣列怎麼創都忘記了,還是那句話 不寫 很容易 忘記。然後下面就給出幾個例子吧 cpp view plain co...

c 動態陣列

首先 為什麼需要動態定義陣列呢?這是因為,很多情況下,在預編譯過程階段,陣列的長度是不能預先知道的,必須在程式執行時動態的給出 但是問題是,c 要求定義陣列時,必須明確給定陣列的大小,要不然編譯通不過 如 int array 5 正確 int i 5 int array i 錯誤 因為在編譯階段,編...