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会发生改变。