2011-09-15 133 views
0
char* lw; 
if((lw=(char *)calloc(2, sizeof(char))==0)) 
    printf("Failed to allocate.\n"); 
else 
    printf("allocated %p\n", lw); 

我已經閱讀過calloc手冊,需要快速簡單的回答,爲什麼輸出NIL? 它轉到else,所以lw不可能是NIL,然後輸出「分配(無)」?上帝的手? ;)Calloc簡單問題

回答

2

因爲您正在分配到lw calloc(...) == 0,即false。你想要它

==0))替換爲)==NULL)