查看: 9|回覆: 0

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

[複製鏈接]

5

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-2-17
發表於 2025-3-30 20:09:00 | 顯示全部樓層 |閲讀模式

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

malloc函数

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

void* malloc(size_t size);

calloc函数

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

void* calloc(size_t num, size_t size);

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

void free(void* ptr);


来源:https://www.cnblogs.com/lradian/p/18801045
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部