您的当前位置:首页正文

动态内存分配浅析2

来源:花图问答

这里特别说明 void * 并不是说是空指针  而是说 这个指针是通用型的或者是无类型的  使用的时候 把它转换成啥类型就是啥类型 

比如 p=(int*)malloc(10*sizeof(int));

另外一点需要注意  

int *p1=NULL;

void *p2;

p1 p2绝不相同  p1是空指针类型已经确定  p2是类型未知且未初始化的指针

calloc()将分配的内存全部初始化为0  可以避免一些不必要的错误 我们建议使用calloc()进行动态内存分配

realloc()

这里需要注意的是 realloc之前最好用一个指针把原来的地址p存储一下  防止在进行操作的时候丢失原地址

因为realloc()的返回值是新分配的存储空间的地址 与原地址未必相同