關於c c 中傳統陣列和動態分配記憶體兩者的對比

2021-07-14 15:11:57 字數 390 閱讀 8762

1、傳統陣列:首先傳統陣列的大小只能在編譯前確定(靜態),不能改變。其次傳統陣列分配的記憶體不能被手動釋放,而且記憶體空間會一直被占用,直至程式結束,才有系統釋放。再其次在其它函式中定義的傳統陣列,只能在該函式執行期間被其他函式使用。一旦該函式結束,其他的函式不能使用該陣列(因為該陣列空間已被釋放)。即傳統陣列不能跨函式使用

2、動態分配記憶體很好的解決了上述問題。。

void *malloc(int):該函式形參是整型,但在傳引數時應注意,應使用(sizeof(typename))進行傳參,考慮到不同的機器環境,其資料型別所佔的空間不同,僅僅用整數(如4)在跨平台時,可能會出錯的;該函式的返回值是void * 指標型別,所以在malloc前應進行強制型別轉換(如(int*)),同時應注意,該函式返回的位址是分配空間的第乙個位元組位址;

陣列的靜態分配和動態分配

原貼 1 在使用陣列前用new表示式動態分配陣列空間,new表示式在堆中分配空間,但是new之後還需delete,比較麻煩,初學者比較容易忘記,效率較低 而陣列的靜態分配,也就是在陣列宣告時直接在 中指定陣列的長度這種方式的記憶體實在棧上分配,在結束生命週期後自動釋放,效率相對較高,但是棧空間有限。...

如何在C C 中動態分配二維陣列

在c c 中動態分配二維陣列可以先申請一維的指標陣列,然後該陣列中的每個指標再申請陣列,這樣就相當於二維陣列了,但是這種方法會導致每行可能不相鄰,從而訪問效率比較低。如何申請連續的二維陣列了?本文將分別三個方面講解 一 動態申請列大小固定的二維陣列 二 c語言中動態申請連續的二維陣列 三 c 語言中...

如何在C C 中動態分配二維陣列

在c c 中動態分配二維陣列可以先申請一維的指標陣列,然後該陣列中的每個指標再申請陣列,這樣就相當於二維陣列了,但是這種方法會導致每行可能不相鄰,從而訪問效率比較低。如何申請連續的二維陣列了?本文將分別三個方面講解 一 動態申請列大小固定的二維陣列 二 c語言中動態申請連續的二維陣列 三 c 語言中...