意義
靜態的記憶體使用的是棧空間記憶體,不用程式設計師自己來分配。因為靜態變數占用的存儲空間對於編譯器而言是可預計的,靜態記憶體只需要編程的時候直接聲明就可以了。與之相反動態記憶體則需要由程式設計師根據需要來自己分配並收回,動態記憶體是因為要執行一些因為外部請求而浮動占用記憶體的套用,所以動態的記憶體分配時候會用new關鍵字或malloc或calloc函式,之所以要程式設計師自己來分配記憶體是由於有時候不能確定程式要使用多少記憶體。
舉例
比如要通過用戶或者檔案或者資料庫中的查詢結果來確定使用多少數據,這時候程式設計師無法在程式的編寫的時候就把記憶體給固定分配出來。這時候必須得讓程式在運行的時候自己來為自己找到可用的記憶體,就一定要用動態的方式來分配記憶體以寫成這樣:
int n;
cout << "input n:";
cin >> n;
cout << endl;
int* iArray = new int[n];
for (int i = 0; i < n; i++)
{
cin >>iArray[i];
}