C语言进阶学习第三章
以下记录动态内存分配:
1.malloc和free
malloc和free分别用于执行动态内存分配和释放。这些函数维护一个可用内存池,当一个程序需要一些内存时,调用malloc函数,malloc从内存池中提取
一块合适的内存,并向该程序返回一个指向这块内存的指针。如果操作系统无法向malloc提供更多的内存,malloc就返回一个NULL指针。因此,对每个从
malloc返回的指针都进行检查,确保它并非NULL;
malloc函数原型如下:
void *malloc(size_t size)
当一块以前分配的内存不再使用时,程序调用free函数把它归还给内存池供以后使用。
free函数原型如下:
void free(void *pointer)
2.calloc和realloc
colloc也用于内存分配,malloc和calloc之间的主要区别是后者在返回指向内存指针之前把它初始化为0。realloc函数用于修改一个原先已经分配的内存块大小,使用这个函数,
可以使一块内存扩大或缩小。