1. 程式人生 > >c語言動態記憶體申請 melloc()使用注意

c語言動態記憶體申請 melloc()使用注意


char* test()
{
char *p;
p=malloc(1024);
if(p==NULL) //*p申請記憶體失敗,返回空指標
{
return NULL;
}
free(p);
return;
}
上面的程式示例中記憶體申請 p=malloc(1024); 這樣的寫法雖然不會報錯誤,但是這樣卻是一個不好的程式設計風格,malloc()庫函式的返回值是一個指向void型別的指標,因此好的程式設計風格應該是在將這個返回值賦給其他型別的指標變數前進行顯示的強制型別轉換。因此比較合適的寫法應該是 p=(char *)malloc(1024);
if(p==NULL)如果記憶體申請失敗,則呼叫return NULL;語句似乎沒有任何問題;但是卻會隱藏導致記憶體洩漏的問題,比較好的寫法應該是:
if(p==NULL)
{
free(P);
return NULL;
}