C 動態記憶體

2021-10-04 18:21:29 字數 1081 閱讀 2109

分配記憶體

從堆中分配記憶體。不建議使用malloc

運算子:

new

語法:

= new ;
int *p = new int
陣列分配記憶體:

= new [size]   //分配size個存放data type型別資料的記憶體
char *array = new int[size]
銷毀記憶體
將記憶體歸還給堆。

運算子:

delete

語法:

delete
delete p;            //銷毀記憶體
銷毀陣列記憶體:

int *array = new int[5];

delete array //銷毀陣列記憶體

#include using namespace std;

int main()

for (i = 0; i < 5; i++)

delete p; //銷毀記憶體

delete array; //銷毀陣列記憶體

return 0;

}

二維陣列動態記憶體分配與釋放:

int **array;

array = new int *[size];

for( int i = 0; i < m; i++ )

//釋放

for( int i = 0; i < m; i++ )

delete array;

C 動態記憶體

了解動態記憶體在 c 中是如何工作的是成為一名合格的 c 程式設計師必不可少的。c 程式中的記憶體分為兩個部分 很多時候,您無法提前預知需要多少記憶體來儲存某個定義變數中的特定資訊,所需記憶體的大小需要在執行時才能確定。在 c 中,您可以使用特殊的運算子為給定型別的變數在執行時分配堆內的記憶體,這會...

C 動態記憶體

棧 在函式內部宣告的所有變數都將占用棧記憶體 堆 這是程式中未使用的記憶體,在程式執行時可用於動態分配記憶體 new和delet運算子 動態分配記憶體的通用語法 new data type 如果自由儲存區已被用完,可能無法成功分配記憶體。所以建議檢查 new 運算子是否返回 null 指標,並採取以...

C 動態記憶體

到目前為止,我們的程式中我們只用了宣告變數 陣列和其他物件 objects 所必需的記憶體空間,這些記憶體空間的大小都在程式執行之前就已經確定了。但如果我們需要記憶體大小為乙個變數,其數值只有在程式執行時 runtime 才能確定,例如有些情況下我們需要根據使用者輸入來決定必需的記憶體空間,那麼我們...