c 動態陣列的使用

2022-05-13 01:08:41 字數 1028 閱讀 5975

在c++中,有的時候會遇到變長的陣列(不管是一維的還是二維的),這個時候就需要用到動態陣列了,並且要用new和delete兩個操作符,這倆操作符一般成對使用。

先說一維的動態陣列吧,直接上**

1 #include2

using

namespace

std;

3int

main()

4

用完了以後,在14行釋放掉了這個動態陣列,而不是釋放的指標p(以便接下來還能使用),接著又輸出了指標p的位址。如果你釋放掉了指標p,delete p; 那麼接下來就

不能再使用用指標p了,因為p所佔的記憶體空間已經釋放了,再用的話就會出錯。比如在第14行後加上 delete p;然後再執行下一條語句 cout報錯如下:

說了這麼多有點跑題了,只是想說明一下不要釋放錯。

再說一下二維的動態陣列,上**

#includeusing

namespace

std;

intmain()

for(int i=0;i//

輸入每行元素的值

cout

<

---------輸出每行元素-----------\n";

for(int i=0;i//

輸出每行元素

for(int i=0;i//

用完釋放掉每行(釋放二級指標)

delete

p[i];

delete p; //

釋放掉每行後,再釋放這個二維陣列(釋放一級指標)

cout<

"/輸出指標p的位址

return0;

}

注釋我寫的比較詳細,執行結果如下圖

可以看到每行的長度都可以不同,這個就根據個人需要了。

c 中的動態陣列使用

c 的new操作符是該語言乙個非常好的語法特性,然而實際使用中卻發現new操作符有不少限制,為突出的一點便是用new操作符分配多維陣列空間時,不能讓陣列的每一維都動態可變。本文將對此提出乙個簡單直觀的解決方案,在乙個實際問題的簡化模型中加以說明,並以此釋清許多初學者對c 中new操作符與多維陣列的誤...

動態陣列使用

演算法訓練 動態陣列使用 時間限制 1.0s 記憶體限制 512.0mb 從鍵盤讀入n個整數,使用動態陣列儲存所讀入的整數,並計算它們的和與平均值分別輸出。要求盡可能使用函式實現程式 平均值為小數的只保留其整數部分。樣例輸入 5 3 4 0 0 2 樣例輸出 9 1樣例輸入 7 3 2 7 5 2 ...

五 C 中CArray動態陣列的使用

carray 是乙個可以存放任何資料型別的複雜的陣列結構,並可以實現陣列的動態管理,在記憶體中的位址分配是連續的,可以提高程式的效率。在 mfc中還提供了常用的變數型別,分別定義為 cbytearray cwordarray cuintarray cdwrodarray cstringarray c...