首页 > 代码库 > C语言内存分配函数
C语言内存分配函数
c语言标准库提供了3个内存分配的函数,都包含在头文件<stdlib.h>中
1、malloc
函数原型:
void *malloc( size_t size );
参数:要分配内存大小的字节数
返回值:指向该内存地址的指针,若错误返回NULL
功能:分配一块指定大小的内存空间。
细节:该内存空间连续,且为堆空间,需要用free()函数手动释放,空间内为垃圾数据。
2、calloc
函数原型:
void *calloc( size_t num, size_t size );
参数:1、要分配内存的数量 2、每块内存的大小的字节数
返回值:指向该内存地址的指针,若错误返回NULL
功能:分配一块指定大小的内存空间。
细节:该内存空间连续,且为堆空间,需要用free()函数手动释放,空间内数据被初始化为0。
3、realloc
函数原型:
void *realloc( void *ptr, size_t size );
参数:1、要改变空间大小的对象 2、将原本的空间大小改为size
返回值:指向改变后内存地址的指针,若错误返回NULL
功能:改变一块分配空间的大小。
细节:该内存空间连续,且为堆空间,需要用free()函数手动释放。
size可以大于原空间大小,也可以小于原空间大小。大于原空间时,若在原空间后面有足够的内存分配,则直接在扩充空间大小。参数1和返回值相等。
若不够,则另寻一块足够大的连续内存地址,将原地址的内容复制到新地址中。回收原空间,并返回新地址的指针。
C语言内存分配函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。