这里特别说明 void * 并不是说是空指针 而是说 这个指针是通用型的或者是无类型的 使用的时候 把它转换成啥类型就是啥类型
比如 p=(int*)malloc(10*sizeof(int));
另外一点需要注意
int *p1=NULL;
void *p2;
p1 p2绝不相同 p1是空指针类型已经确定 p2是类型未知且未初始化的指针
calloc()将分配的内存全部初始化为0 可以避免一些不必要的错误 我们建议使用calloc()进行动态内存分配
realloc()
这里需要注意的是 realloc之前最好用一个指针把原来的地址p存储一下 防止在进行操作的时候丢失原地址
因为realloc()的返回值是新分配的存储空间的地址 与原地址未必相同