2 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個贊
1)malloc.h 是的,VC 6.0 用 #include <stdlib.h> 就可以了。
2)寫法都對。用 malloc 或 calloc 與個人習(xí)慣 有關(guān)(各人喜歡,c語言歷史有這2函數(shù))。realloc 用于 隨時可以 增加 動態(tài)分配 或 減小 動態(tài)分配 空間。另2個函數(shù)無此功能。
3) 加條件判斷做釋放: if ( p) free(p);

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個贊
1 include stdlib.h instead
2 calloc 分配m個n字節(jié)的內(nèi)存空間,該內(nèi)存空間被置0
malloc 分配制定直接長內(nèi)存空間,空間內(nèi)容未置0
realloc 中如果第一個指針為NULL,等效malloc,如果第一個指針不為空,但是size=0,等效free,指針
,大小都不為0則重新根據(jù)內(nèi)存分配算法挑選合適內(nèi)存
3 double free 是有可能造成core dump的,free 后置NULL即可,即使free(NULL)也不會出問題,
if(NULL!=p){free(p);p=NULL;} a better way !!!
- 2 回答
- 0 關(guān)注
- 234 瀏覽
添加回答
舉報