void* 是说 malloc 成功执行的时候返回一个无类型指针
无法定位满足我们需要的足够大的内存块,函数会返回空指针
是说 内存不足 返回NULL
int* a;
if ((a=malloc(1000)) == NULL)
{
内存不足执行这里
}
else
{
成功分配内存执行这里
}
空指针与void*类型指针当然不一样
空指针 是说这个指针的值是NULL,指针本身的类型可能是各种类型
void*类型指针 是说这个指针的类型是void*,他的值也可能是NULL
是啊 malloc函数返回一个void型指针 ,, 因为函数要把这个指针付给一个任意型的指针 比如 int* char* 为了通用性 所以它本身是void*的 ....
比如你现在要申请一个100K的内存空间(这个空间在物理上一定是连续的),但是现在内存中已经没有这么大的连续空间(内存已满,或只有若干小于100K的空间),那么结果就是无法定位,只能返回空指针。
具体的内存管理在操作系统里会讲。。。