C 動態陣列再總結

2021-09-22 05:21:26 字數 2444 閱讀 1633

動態陣列是指在編譯時不能確定陣列長度,程式在執行時需要動態分配記憶體空間的陣列。

實現變長陣列最簡單的是變長一維陣列,你可以這樣做: 1

2

3

4

5

6

7

8

9

10

11

12

13

//檔名:array01.cpp

#include

using namespace std;

intmain()

注意int*p=newint[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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

//檔名:array02.cpp

#include

#include

using namespace std;

intmain()

return0;

}

在建構函式中分配空間:

arr = new type*[size];

for(int k=0; k1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#include

using namespace std;

intmain()

for(intk=0; k<3; k++)

cout<<*arr[k]<<" ";

cout<

for(intk=0; k<3; k++)

delete arr[k];

delete arr;

return0;

}

C 動態陣列再總結

動態陣列是指在編譯時不能確定陣列長度,程式在執行時需要動態分配記憶體空間的陣列。實現變長陣列最簡單的是變長一維陣列,你可以這樣做 檔名 array01.cpp includeusing namespace std int main 注意int p newint len 這一句,你不能這樣做 int ...

C 動態陣列再總結

動態陣列是指在編譯時不能確定陣列長度,程式在執行時需要動態分配記憶體空間的陣列。實現變長陣列最簡單的是變長一維陣列,你可以這樣做 檔名 array01.cpp includeusing namespace std int main 注意int p newint len 這一句,你不能這樣做 int ...

C 動態陣列再總結

動態陣列是指在編譯時不能確定陣列長度,程式在執行時需要動態分配記憶體空間的陣列。實現變長陣列最簡單的是變長一維陣列,你可以這樣做 檔名 array01.cpp includeusing namespace std int main 注意int p newint len 這一句,你不能這樣做 int ...