文章

关于malloc的一些说明

如下面的代码:

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

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

本文由作者按照 CC BY 4.0 进行授权