2011-09-15 4 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を出力しますか? それは他に行くので、lwはおそらくNILではありません。その後、 "allocated(nil)"を出力しますか?神の手? ;)Callocシンプルな問題

答えて

2

falseのlw calloc(...) == 0に割り当てるためです。あなたはそれ以外の方法でそれをしたいです

と置き換えてください。==0)))==NULL)に置き換えてください。