下面是一个malloc程序————malloc(-1)与malloc(0xffffffff),感觉结果应该一样,但是不是这样,不知道为什么?求高手指教
int main()
{
char *pc;
printf("%u %x\n",-1,-1);
printf("%u %x\n",0xffffffff,0xffffffff);
if((pc = malloc(-1))==NULL)
printf("not malloc!\n");
else
printf("malloc ok!\n");
if((pc = malloc(0xffffffff))==NULL)
printf("not malloc!\n");
else
printf("malloc ok!\n");
return 0;
}
结果为:
4294967295 ffffffff
4294967295 ffffffff
not malloc!
malloc ok!
问题————既然-1与oxffffffff都一样,为什么一个为not malloc!,另一个为malloc ok!