C语言-堆内存申请和释放

大家在使用函数的时候避免不了使用堆内存,堆内存是一个匿名内存,它里边的内容是不能标识符进行访问的,只能使用指针进行访问,而且C语言的标准库函数给我们提供了两个堆内存的申请函数,但是这两个函数到底有什么区别呢?

malloc函数

相信大家对这个函数并不陌生,这个函数是用来像内存中的堆空间申请连续的存储单元,这个函数有一个参数就是我要申请的字节大小,他的返回值是一个void*的指针类型,在使用的时候要记得强转为自己所需要的指针类型哦!

void* malloc(size_t size);
void* malloc(size_t size);
void* malloc(size_t size);

calloc函数

calloc函数也是一个堆内存空间申请函数,但是与malloc不同的是,它有两个参数,第一个是要分配几块内存,第二个参数是要分配的内存块的大小,他的返回值是一个void*的指针类型,此函数会对内存进行初始化,初始化的值为0;在使用的时候要记得强转为自己所需要的指针类型哦!

void* calloc(size_t num, size_t size);
void* calloc(size_t num, size_t size);
void* calloc(size_t num, size_t size);

最重要的一点,在使用完malloc和calloc函数申请的内存空间之后,要记得及时使用free函数释放申请的内存空间,如果不及时释放,会造成内存泄漏哦。。。

void free(void* ptr);
void free(void* ptr);
void free(void* ptr);

来源链接:https://www.cnblogs.com/lradian/p/18801045

© 版权声明
THE END
支持一下吧
点赞5 分享
评论 抢沙发
头像
请文明发言!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容