c 動態陣列

2021-07-04 06:32:52 字數 731 閱讀 5212

首先:為什麼需要動態定義陣列呢?

這是因為,很多情況下,在預編譯過程階段,陣列的長度是不能預先知道的,必須在程式執行時動態的給出

但是問題是,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

C 動態陣列

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

c 動態陣列

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

c 動態陣列

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