C语言基础(4)calloc和realloc

图片发自App


1、calloc

功能:申请一段连续的数组空间

格式:int *p=(int *)calloc(5,4)(5代表元素个数,4代表每个元素的字节数);

释放:free(p);

与malloc区别:自动初始化为所有元素都为0,具体分析:

①calloc更适用于申请数组空间;

②其他数据结构,比如链表、树、图,一次申请sizeof(节点),这些使用malloc合适。

③calloc存在初始化过程,整体效率低一点点,而malloc没有初始化过程,效率高一点,但是比例很低。


2、realloc

功能:重新分配内存的大小,记忆增加也可以减少

格式:(int *)realloc(p,20);(p代表首地址,20代表修改后的长度);

注意:当当前内存区域无法满足realloc的新的地址的空间,会换一个新的内存区域分配所需的地址,那么首地址p会发生改变。

你可能感兴趣的:(C语言基础(4)calloc和realloc)