1
可能重複:
what's the point in malloc(0)?
what does malloc(0) return?malloc(-1)返回NULL,但malloc(0)不是爲什麼?你怎麼能0分配內存空間
此代碼顯示 「不成功的」,但如果你更換-1 0它不會是NULL。我不明白你如何分配0內存空間。我知道有沒有用,但不爲NULL == 0L所以它應該是== 0太..
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *ptr;
if((ptr = malloc(-1)) == NULL)
printf("unsuccessful: no memory space was allocated.\n");
else{
printf("successful: memoryspace was allocated. \n");
free(ptr);
}
getch();
return 0;
}
當'malloc'返回'NULL'失敗時,它應該設置'errno'並且你應該打印'strerror(errno)' –
「我不知道如何分配0個內存空間」 - 不要調用malloc()!! –
是的,我傾向於用一種清理方式分配東西(或者什麼也沒有)的多種可能性。不需要檢查是否調用了'malloc'。從C++類的角度來看它更有意義,但我想它可能發生在C. – chris