動態記憶體分配小結

2021-07-09 01:47:43 字數 356 閱讀 4956

動態記憶體分配中的free()是釋放的意思

釋放是修改了申請的記憶體的使用狀態,從可用變成不可用,裡面的資料還在,但是使用權已經交還給系統

int *p = malloc(sizeof(int) * 10);

free(p);

free(p);

當我們對同一塊記憶體進行多次釋放的時候,會造成系統的崩潰,這種情況是過度釋放造成的.

malloc申請記憶體之後,記憶體使用完,就free,這兩個是成對出現的

當對一段記憶體free之後,根據位址還可以訪問這段記憶體,但是記憶體的所屬權已經不在我們手裡,會出現崩潰的可能,這種情況稱為野指標

野指標,過度釋放和記憶體洩漏是常見的三種記憶體問題.程式設計時要多注意.

動態記憶體分配課後小結(1)

我們知道,當我們宣告乙個陣列的時候,必須要用乙個常量指定陣列的長度,這是由於它所需要的記憶體空間取決於資料。但是如果我們不能 程式所需要的精確陣列長度,為了保證足夠的空間,常常宣告乙個很大的長度,由此便可能造成不必要的空間浪費。所以引入了動態記憶體分配的概念。在動態記憶體分配中,c函式庫給我們提供了...

動態記憶體分配

在c 中建立乙個物件時,我們必須要為這個物件申請一塊記憶體,而且要用建構函式對這塊記憶體進行初始化。c 中的new和delete相對於c的庫函式malloc和free在這方面有很大的優勢,所以我們主要講的是運算子new和delete。當用new來建立乙個物件時,它會自動在堆裡為物件分配記憶體並且為這...

動態記憶體分配

為什麼使用動態記憶體分配?c語言中的一切操作都是基於記憶體的 變數和陣列都是記憶體的別名,如何分配這些記憶體由編譯器在編譯期間決定 定義陣列的時候必須指定陣列唱的 而陣列長度是在編譯期就必須決定的 需求 程式執行的過程中,可能需要使用一些額外的記憶體空間 malloc和free malloc和fre...