extern void *malloc(unsigned int num_bytes);
当内存申请成功时候,会返回指针,指向分配的内存的起始位置。
如果失败会返回NULL。(失败是因为内存空间不够了)
如果申请的size为0 返回是什么?
是NULL吗??
曾幻想是NULL,但却不是,可以在linux下查看malloc函数。或是msdn
那这个指针到底指向了哪里??
我比较信服的说法是:
对于申请内存为0的做法是属于未定义的(implementation-defined):Please google implementation-defined
也就是说各个实现标准的编译器什么的对于在实现这个未定义的地方的时候可以想怎么实现就怎么实现,因为不是标准的吗。
所以在写代码的时候一定要确保不要出现这种未定义的情况。