关于malloc,calloc,realloc使用的总结

malloc

  1. 原型:void* malloc(unsigned int num_bytes)
  2. 作用:一次性申请num_bytes个bytes大小的内存,不会初始化
  3. 使用实例:
int* p = (int*)malloc(10*sizeof(int)) ; 

calloc

  1. 原型:void* calloc(size_t n, size_t size)
  2. 作用:一次性申请n*size类型空间并初始化
  3. 使用实例:
int* ptr = (int*)calloc(10 , sizeof(int))

realloc

  1. 原型:void* realloc(void *ptr, size_t new_Size)
  2. 作用:用于对动态内存进行扩容(及已申请的动态空间不够使用,需要进行空间扩容操作),ptr为指向原来空间基址的指针, new_size为接下来需要扩充容量的大小。如果size较小,原来申请的动态内存后面还有空余内存,系统将直接在原内存空间后面扩容,并返回原动态空间基地址;如果size较大,原来申请的空间后面没有足够大的空间扩容,系统将重新申请一块(20+size)*sizeof(int)的内存,并把原来空间的内容拷贝过去,原来空间free;如果size非常大,系统内存申请失败,返回NULL,原来的内存不会释放。
  3. 使用实例:
int* p = (int*)malloc(10*sizeof(int)) ; 
int *pb = (int*)realloc(p , 10*sizeof(int)) ;
// 扩容

猜你喜欢

转载自blog.csdn.net/qq_45279570/article/details/107755820