关于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-NC-4.0 许可协议。

Creative Commons License

欢迎转载,转载需注明出处,且禁止用于商业目的。

上篇C++运算符的重载
下篇三次样条差值(MATLAB)