在C 中實現變長陣列

2021-06-02 07:41:48 字數 1314 閱讀 4786

1.變長一維陣列

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

//檔名:   array01.cpp

#include

using   namespace   std;

int   main()

注意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(向量)也可以實現變長陣列:

//檔名:   array02.cpp

#include

#include

using   namespace   std;

int   main()

cout < } return   0;

} 執行結果:

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 中實現變長陣列

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

在C 中實現變長陣列

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

在C 中實現變長陣列

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