[問題] about malloc
被問到一個問題
char * xxfunction(int size)
{
char *pt=NULL;
if((pt=(char*)malloc(size))==NULL)
{
printf("error\n");
exit(1);
}
return pt;
}
假如 size傳進來=0
pt仍然可以拿到非NULL的address
(malloc(0) 會照常return address)
除了在malloc之前
檢查size是否<0以外
還有其他方法可以避免這個錯誤發生
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.142.155
→
11/08 15:00, , 1F
11/08 15:00, 1F
→
11/08 15:01, , 2F
11/08 15:01, 2F
用0傳的原因是因為size是外部指定
但是multi access function 的時候有可能拿到錯誤的size值
→
11/08 15:12, , 3F
11/08 15:12, 3F
→
11/08 15:12, , 4F
11/08 15:12, 4F
→
11/08 16:11, , 5F
11/08 16:11, 5F
→
11/08 16:12, , 6F
11/08 16:12, 6F
→
11/08 16:12, , 7F
11/08 16:12, 7F
→
11/08 16:13, , 8F
11/08 16:13, 8F
→
11/08 16:13, , 9F
11/08 16:13, 9F
→
11/08 16:14, , 10F
11/08 16:14, 10F
→
11/08 16:28, , 11F
11/08 16:28, 11F
→
11/08 17:15, , 12F
11/08 17:15, 12F
→
11/08 17:15, , 13F
11/08 17:15, 13F
※ 編輯: keying 來自: 61.64.138.22 (11/09 14:15)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章