关于malloc的一些说明

April 2, 2010

如下面的代码:

int main()
{
long *p1,*p2;
p1=(long *)malloc(0);
p2=(long *)malloc(0);
return 0;
}

p1,p2指向的地址不为空,今天有同学问我,我想了一番,最后朋友有帮忙查了下MSDN,最终有了答案。 当malloc()的参数为0时,系统会在堆中分配一个长度为0的项目,然后返回一个指向该项目的有效的指针,而不是NULL!

Comments