有時候在函式中使用malloc時,如果分配記憶體失敗,可能會打算讓函式直接返回,例如:
char
*t; t =
malloc(4
);if(t ==
null
)return-1
;else
//...
但是如果使用了多次malloc,就要注意在判斷到某次分配失敗而導致返回時,將已經分配了的空間釋放掉。雖然通常在函式的結尾處不會忘記free,但是卻很容易在這種中途返回時疏忽了。
例如先分配了t1的空間,那麼在給t2分配空間失敗時,在返回之前就要free(t1):
char
*t1;
t1 =
malloc(4
);if(t ==
null
)return-1
;char
*t2;
t2 =
malloc(4
);if(t2 ==
null
)return-1
;
malloc函式的注意事項
malloc函式定義在 include 的標頭檔案中,函式原型的void malloc unsigned int ret 型別如果申請不成功就會返回null,void 是一種不指定指向的指標,可以是任意的指標,但是得強制轉換型別,如 以下 片段 int p p int malloc 4 malloc...
C 中使用new和malloc注意事項
先測試如下帶引數的建構函式 class test private int num 可以看到其建構函式帶乙個引數,並且在前導中執行私有變數 num的初始化操作,函式體中列印提示資訊。下面時主函式。int main 程式執行結果如下。created test with 10 請按任意鍵繼續.可以看出其執...
記憶體分配malloc函式注意事項。
malloc的全稱是memory allocation,中文叫動態記憶體分配,用於向系統申請分配指定位元組的記憶體空間 原型 extern void malloc unsigned int num bytes 看原型很頭疼,來兩個例子 int p p int malloc sizeof int 12...