首先:為什麼需要動態定義陣列呢?
這是因為,很多情況下,在預編譯過程階段,陣列的長度是不能預先知道的,必須在程式執行時動態的給出
但是問題是,c++要求定義陣列時,必須明確給定陣列的大小,要不然編譯通不過
如: int array[5];正確
int i=5;
int array[i]; 錯誤 因為在編譯階段,編譯器並不知道 i 的值是多少
那麼,我們該如何解決定義長度未知的陣列呢?
答案是:
new 動態定義陣列
因為new 就是用來動態開闢空間的,所以當然可以用來開闢乙個陣列空間
這樣,下面的語句:
int size=50;
int *p=new int[size]; 是正確的
既然一維是真正的動態分配的話,那我們利用這一特性定義乙個指標陣列。
int **p= new int*[size];//定義指標陣列
int *p[5];// 假若知道二維陣列的行數為5
然後對指標陣列中的每乙個指標分配乙個一維陣列空間,這樣便動態定義了二維陣列
事實上,我認為指標陣列的主要用途,就在於動態定義多維陣列
for(int i=0;i
執行完畢後,乙個二維陣列便被動態的成功建立
例子:size =6;
column =5
int **p=new int*[size];
for(int i=0;i 原 1.變長一維陣列 這裡說的變長陣列是指在編譯時不能確定陣列長度,程式在執行時需要動態分配記憶體空間的陣列。實現變長陣列最簡單的是變長一維陣列,你可以這樣做 1 檔名 array01.cpp 2 include 3 using namespace std 4 int main 5 注意int p ... 在建立動態陣列的過程中我們要遵循乙個原則,那就是在建立的時候從外層往裡層,逐層建立 而釋放的時候從裡層往外層,逐層釋放。這個話你讀了可能理解並不深刻,不過不要急,接下來我們看看兩段 一維動態陣列的建立 include include int main int n1,i int array print... 這學期學c 晚上有道程式設計題,比較坑,感覺要用動態陣列做,但實際就是要用靜態陣列,因為動態的反而更難了。用動態陣列的時候,發現自己只會建立一維的 int a new int 5 然後二維陣列怎麼創都忘記了,還是那句話 不寫 很容易 忘記。然後下面就給出幾個例子吧 cpp view plain co...C 動態陣列
c 動態陣列
c 動態陣列