C語言 第九章動態記憶體

2021-09-28 20:35:11 字數 821 閱讀 8520

手動申請 手動釋放

什麼時候使用動態記憶體:

1.儲存比較大的資料量時

2.記憶體大小可以變化時

#include

void *malloc(size_t size);

申請size個位元組的動態記憶體

返回申請到的動態記憶體的起始位址

如果申請失敗返回 null

void *calloc(size_t nmemb,size_t size);

申請動態記憶體 

申請nmemb個 size大小的記憶體 一共 nmemb*size個位元組的記憶體

如果申請失敗返回null

calloc分配的記憶體會自動清零

void *realloc(void *ptr,size_t size);//調整動態記憶體的大小

ptr之前申請的動態記憶體的首位址

size 要呼叫成多大大小的記憶體

返回 呼叫大小之後的記憶體的 首位址

注意:

一定一定重新接收返回值

void free(void *ptr); //釋放動態記憶體

使用步驟:

1.申請動態記憶體

2.判斷申請是否成功

3.使用動態記憶體

4.釋放動態記憶體

記憶體洩露

堆記憶體沒有釋放

及時釋放不再使用的動態記憶體 一定記住釋放

軟體檢查程式是否有記憶體洩露

第九章 動態規劃 1305 Maximum sum

輸入樣例 110 1 1 2 2 3 3 4 4 5 5 輸出樣例 13 提示 就是求最大子段和問題,樣列取2,2,3,3,4和5,baidu搜poj 2479 maximum sum,可獲得大量經典最大子段和問題的題目解析,本題o n2 演算法超時,必須用o n 演算法。思路 從左到右分別求出它們...

第九章 動態規劃 1300 雞蛋的硬度

1300 雞蛋的硬度 時間限制 1000 ms 記憶體限制 65536 kb 題目描述 最近xx公司舉辦了乙個奇怪的比賽 雞蛋硬度之王爭霸賽。參賽者是來自世界各地的母雞,比賽的內容是看誰下的蛋最硬,更奇怪的是xx公司並不使用什麼精密儀器來測量蛋的硬度,他們採用了一種最老土的辦法 從高度扔雞蛋 來測試...

c 基礎 (第九章)

結構體型別說明 struct 結構體識別符號 成員變數列表 如果沒有結構體識別符號,則稱為無名結構體型別 引用結構體變數成員 l 結構體變數名.成員名 l 結構體指標名 成員名 l 結構體指標名 成員名 共用體共用體所有變數共用一塊記憶體 定義格式如下 union 共用體識別符號 成員變數列表 列舉...