對於不想使用固定長度的陣列,一般會考慮動態申請;
而在c中是相當麻煩的操作,在c++中就變得特別簡單;
(一)申請動態陣列
int n;
cin>>n;
int *arr = new int[n];
如上就是為arr陣列申請了大小為n的空間 ,
但是如果寫為
int n ;
cin>>n;
int a[n] ;
這樣的寫法是錯的;
是對長度的定義,()是對大小的定義; 如上操作就是對陣列大小的定義,
(二)申請單個物件:
int *p ;
p = new int ;
或者還喜歡直接在申請的堆記憶體中包含固定的值;
int *p = new int(100);
(三)注意:
不管申請的是什麼型別,在堆上申請的空間在使用完後一定要進行釋放,不然會造成記憶體洩露;
delete arr;
一般釋放的操作為:delete+指標名;
當然將它指向乙個空指標也是可以的 ;
arr = null;
資料儲存 動態記憶體申請和釋放(c語言)
函式宣告 返回為 void 型別 void malloc size t size 需要的標頭檔案 include 或 include 應用 指標 型別 變數名 指標 型別 malloc n sizeof 型別 指標 型別 強轉為同變數型別 如 int arr int malloc n sizeof ...
C語言中動態記憶體的申請和釋放
什麼是動態記憶體的申請和釋放?當程式執行到需要乙個動態分配的變數時,必須向系統申請取得堆中的一塊所需大小的儲存空間,用於儲存該變數。當不再使用該變數時,也就是它的生命結束時,要顯式釋放它所占用的儲存空間,這樣系統就能對該堆空間進行再次分配,做到重複使用有限的資源。在c語言中動態記憶體的申請和釋放 1...
C和C 的區別之動態記憶體申請
c語言中 申請記憶體空間的標頭檔案是 include 最重要的是不要忘記釋放申請的記憶體空間,防止記憶體洩漏 申請乙個結點的記憶體空間 include include include int main 申請一維陣列的記憶體空間 include include include define size ...