在c++中,有的時候會遇到變長的陣列(不管是一維的還是二維的),這個時候就需要用到動態陣列了,並且要用new和delete兩個操作符,這倆操作符一般成對使用。
先說一維的動態陣列吧,直接上**
1 #include2用完了以後,在14行釋放掉了這個動態陣列,而不是釋放的指標p(以便接下來還能使用),接著又輸出了指標p的位址。如果你釋放掉了指標p,delete p; 那麼接下來就using
namespace
std;
3int
main()
4
不能再使用用指標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...