C语言之malloc和realloc
前言:
利用malloc和realloc函数对内存进行动态分配,有利用提高内存的使用效率,并可以在程序开始时不用确定内存的大小。
一、malloc和free
他们都在头文件stdlib.h中声明,函数的原型如下
void *malloc ( size_t size );//malloc返回一个void *的指针,它可以转换为其它任何类型的指针。
void free ( void *pointer );
利用malloc 可以分配一个指定大小的连续内存空间
还有一个calloc 函数分配内存与malloc类似,只是传参不一样,其函数的原型如下
void *calloc ( size_t num_elements, size_t element_size );//传入参数是:元素的数量和每个元素的字节
二、realloc
其函数的原型如下
void *realloc (void *ptr, size_t new_size );
通过这个函数可以对malloc 分配的内存区域进行追加内存或者减小内存大小,而保留malloc分配的内存的原有内存。
总结:
利用malloc 分配连续的内存空间,利用realloc对malloc 分配的内存进行动态扩大或者缩小。