malloc函数的返回值是什 如何正确使用malloc函数分配内存
内存泄漏的原因
2.1 C语言内存分配情况
在C语言中,根据数据在内存中存在的时间(生存周期)不同,将内存空间分为三个区:
1)程序区:用于存储程序的代码,即程序的二进制代码。
2)静态存储区:用于存储全局变量和静态变量,这些变量的空间在程序编译时就已经分配好了。
3)动态存储区:用于在程序执行时分配的内存,又分为:堆区(heap)和栈区(stack)。堆区:用于动态内存 分配,程序运行时由内存分配函数在堆上分配内存。在C语言中,只能使用指针才能动态的分配内存。栈区:在 函数执行时,函数内部的局部变量和函数参数的存储单元的内存区域,函数运行结束时,这些内存区域会自动释 放。
2.2 C语言动态内存分配
在C语言中用内存分配函数来实现内存的动态分配,这些函数有:malloc()和realloc()等函数。malloc():使用这个 函数时需要包含头文件。使用该函数需要指定要分配的内存字节数作为参数,例如:
int *pNumber=(int *) malloc(100)
这条语句分配了100个字节的内存,并把这个内存块的地址赋给pNumber,这个内存块可以保存最大25个int值, 每个int占4个字节。如果不能分配请求的内存,malloc()会返回一个null指针。
2.3 释放动态分配的内存
堆上分配的内存会在整个应用程序结束之后,由操作系统负责回收,但最好是在使用完这些内存后立即释放。如 果不释放,会引起内存泄漏,极大占用系统资源,可能会产生各种未知的错误。所以,必须使用free()函数释 放内存,参数是内存地址(指针),例如:free(pNumber),依上例。
(3)内存泄漏避免的方法
3.1正确使用malloc函数分配内存
malloc是一个函数,专门用来从堆上分配内存。使用malloc函数需要几个要求:内存分配给谁?分配多大内存? 是否还有足够内存分配? 内存将用来存储什么格式的数据?分配好的内存在哪里? 如果这5点都确定,那内存就 能分配。下面看看malloc的原型:(void *)malloc(int size)
malloc函数的返回值是一个void类型的指针,参数为int类型的数据,即申请分配的内存大小,单位是字节。内存 分配成功之后,malloc函数返回这块内存的首地址,你需要一个指针来接受这个地址。也就是说这块内存将来要 用来存储什么类型的数据,如:
char *p = (char *)malloc(100)
在堆内存分配了100个字节的内存,返回这块内存的首地址,把地址强制转换成char *类型后赋给char *类型的指 针变量p;同时告诉我们这块内存将用来存储char类型的数据。你只能通过指针变量p来操作这块内存,这块内存 本身没有名字,对它的访问是匿名访问。但是,不一定每次malloc函数都能成功分配到内存。既然malloc函数申 请内存存在不成功的可能,那我们在使用指向这块内存的指针时,必须用if( NULL != p)语句上来验证内存分 配确实成功了。
3.2 正确使用free函数释放内存
既然有分配,那就必须有释放,不然的话,有限的内存就会用光,而没有释放的内存却占用空间,与malloc对应 的就是free函数了。free函数只有一个参数,就是所要释放的内存块的首地址(指针)。按上例,则 为:free§.free函数其实它就做了一件事:斩断指针变量和这块内存的对应关系。free函数就是把这块内存和p 之间的关系斩断;p本身的值并没有改变或者消失,即指针变量p本身保存的地址并没有改变,那块被释放的内存 里面保存的值也没有改变。这就是free函数的功能,一个malloc对应一个free,是一夫一妻制。在使用free(p) 函数内存释放后,指针变量p本身保存的地址并没有改变,那我们必须需重新把p的值变为NULL:p = NULL。如 果没有把该指针置NULL,这个指针就成为了“悬空指针”,这是很危险的,且也是经常出错的地方。
标签: C语言malloc函数的功能及用法 malloc函数的返回值 如何正确使用malloc函数分配内存 内存泄漏避免的方法 malloc函数的应用 释放动态分配的内存 内存泄漏的原因 C语言内存分配情况 C语言动态内存分配 静态存储区 什么是程序区
电脑
-
Photoshop图形处理器如何使用性能首选项?显卡驱动和Photoshop问题故障诊断
兼容的图形处理器(也称为图形卡、显卡或 GPU)可让您获得更好的 Photoshop 性能体验并利用其更多功能...
-
钉钉中屏蔽别人的具体步骤分享 钉钉中如何屏蔽同事不接收同事消息?
在钉钉中屏蔽别人的具体步骤如下:1、打开手机钉钉软件,点击下方的登录按钮,登录个人账号。2、登录之...
-
PS中的标尺工具怎么使用定位?PS软件中如何使用标尺工具定位?
标尺工具 可帮助您准确定位图像或元素。标尺工具可计算工作区内任意两点之间的距离。当您测量两点间的...
-
启动Excel时没有响应停止工作该怎么办?Excel无法正常启动解决方法
本文讨论在您启动 Excel 时,Excel 没有响应错误、启动 excel 工作簿或打开 Excel 工作簿时,可...
-
修复损坏的excel工作簿详细操作方法 如何修复损坏的Excel工作簿?
打开已损坏的工作簿时,Excel 将自动启动文件恢复模式,还会尝试重新打开并同时修复工作簿。Excel 并...
硬件
- 郑州封控区、管控区外社会面已连续3次阳性病例零报告!
- 郑州:非生活必需场所一律暂时关闭 出租车、网约车单双号限行
- 郑州昨天新增确诊病例11例,累计报告确诊病例103例
- 郑州:各核酸检测采样点开辟学生绿色通道
- 为何持续多轮做核酸检测 河南疾控专家解释
- 驻马店:关于依法严厉打击涉疫情网络谣言等违法信息的通告
- 郑州本轮累计报告103例本土确诊病例 均为普通型或轻型
- 郑州第五轮9区全员核酸检测已检724.9万人,已确诊5例
- 安阳疫情最新消息|1月10日安阳市新增本土确诊病例58例,其中56例在汤阴县
- 全国疫情最新消息|1月10日新增确诊192例 天津新增本土确诊10例 河南新增本土确诊87例
- 河南疫情最新消息|1月10日河南新增本土确诊病例87例
- 1月10日0时至11日8时,安阳新增本土确诊58例
- 河南省2022年中招理化生实验操作考试怎么考?总分多少分?
- 河南警方通报11起疫情防控典型案例!多人被依法立案侦查!
- 平板截屏的快捷键是什么_揭晓这6种快捷键截图技巧
- 每日头条!东莞十大必去的景点:松山湖第二,第五是东莞地标
- 今日热搜:张家界十大景点排名 张家界必玩的景点有哪些
- 焦点播报:全球十大滑雪品牌排行对比_国外滑雪服品牌介绍
- 全球要闻:大连十大旅游景点排名 大连必去景点排名
- 全球热资讯!世界上最安全的安卓手机 1.7美元的以色列手机
- 郴州十大旅游景点排行榜 郴州最好玩的景点排名
- 【新视野】枣庄十大旅游景点排行榜 枣庄最值得去的地方
- 滚动:青岛特产有哪些可以带走_青岛买什么特产回家
- 环球快看点丨青州十大旅游景点大全 青州好玩的景点有哪些
- 前沿热点:台州十大旅游景点排名 台州有什么可以玩的地方
- 当前信息:长治十大旅游景点大全 长治周边一日游哪里好
- 迪拜二王子的中国老婆迪拜-嫁迪拜人好吗?
- 全球关注:东莞美食最多景点:石排食街上榜,第六海鲜特色
- 全球微速讯:网络应用软件有哪些_最值入手的6款实用软件
- 大众途锐v6多少钱一辆 大众途锐v6售价64万元(发动机达到1340转即可爆发450牛米扭矩)
- 凯迪拉克钥匙功能说明
- 全球关注:晋江自驾游去哪里好玩 清源山草庵寺上榜,紫帽山景色一绝
- 全球速递!三亚前往北京航班均已取消_三亚现疫情 前往北京航班均已取消
- 今日讯!固态继电器怎么测好坏,教你如何用万能表判断好坏
- 【世界快播报】红旗10万一15万SUV 颜值超高动力十足的三款SUV
- 环球微头条丨长春十大美食排行榜
- 自学程序员的步骤
- 天天短讯!螃蟹可以冷冻吗?
- 贵阳十大最受欢迎景点:青岩古镇上榜,第一是中华第一瀑布
- 今日热闻!迪拜十大旅游景点排行榜 迪拜必去的十大景点推荐
- 前沿热点:微信借500七天的公众号怎么申请_全程图解申请流程
- 天天快资讯:数据分析图怎么制作_4步完成Excel数据分析图
- 世界新消息丨开封十大特色小吃 开封本地人最爱吃的美食
- 梦幻西游黑风山副本攻略
- 网络机顶盒看电视直播哪个软件好_最好用的三款免费直播软件分享
- 世界看点:本田雅阁260豪华版落地价多少 雅阁260豪华版落地价20万元
- 环球热点评!怎么注销手机支付宝_手机号不用了支付宝怎么注销?
- 中国助听器哪个牌子好?国产助听器品牌排行榜
- 环球速递!红标本田什么意思 红标本田多少钱一辆
- 【独家焦点】国内天然狗粮哪个牌子好?国产十大放心狗粮排行榜
- 当前关注:长沙景点排行榜前十名
- 兰博基尼urus落地价多少 2021款落地价(落地价353万)
- 临沂十大旅游景点排名 临沂一日游必去景点
- 鼠标右键新建中没有office办公套件解决方法 右键没有新建Word怎么办?
- 如何解决win7系统打开PDF文件出现关联错误?PDF文件关联错误解决方法分享
- 电脑借助QQ调试摄像头的操作方法分享 怎么用QQ看电脑的摄像头好不好?
- 迅雷看看无法播放视频问题的解决方法分享 电脑视频播放器用不了怎么办?
- 电脑彻底卸载itunes软件操作方法 苹果itunes软件怎么彻底删除?
- win7系统电脑怎么禁止下载东西?电脑禁用下载的方法分享
- 使用命令删除win10电脑预装软件的操作方法 电脑预装软件怎么删除?
- Win10vc6.0详细安装教程分享 vc6.0怎么下载安装?
- 怎么在文档中插入当前日期并自动更新?Word文档插入日期操作方法
- 禁止PDF文档复制和打印两种方法分享 怎么禁止文档复制以及打印?
- 扫描资料怎么转换成电脑Word文档?office光学字符识别功能使用方法介绍
- 电脑微信接收word提示目录名无效是什么问题?微信打开WORD提示目录名无效解决方法
- 怎么在PhotoShop中如何设置定时自动保存?PS软件设置定时自动保存操作方法
- 植物大战僵尸运行时怎么启用向下兼容功能?软件游戏兼容模式怎么开?
- word文档打开时提示0xc0000142错误解决方法 win10打不开word文档怎么办?
- Photoshop合成照片和图片详细操作步骤 如何使用PS合成照片?
- win10安装Office时出现错误代码0-3要怎么处理?安装Office提示0-3的三种解决方法
- Win7手动卸载Office详细步骤介绍 轻松卸载电脑上的Office软件
- win10自行修复Office未经授权产品错误处理方法分享 电脑怎么处理“未经授权产品”错误?
- Win7安装Office时被阻止的详细解决方法 无法安装Office原因可能有哪些?
- 怎么把屏幕截图自动保存到OneDrive里面?win10系统如何将屏幕截图保存到OneDrive?
- CAD右键发布DWF文件功能怎么关闭?CAD右键直接就发布解决方法
- win10升级后office365账户登录无法激活详细解决方法 office账户激活不了怎么办?
- OneNote forWindows怎么进行笔记共享操作?OneNote怎么共享一页笔记的快照?
- Excel冻结窗格的具体操作步骤分享 表格中怎么将特定的行和列锁定?
- Excel表格中怎么隐藏或取消隐藏列?表格怎么设置仅显示需要查看的数据?
- Word文档中添加图表详细操作步骤 怎么在Word中从头开始创建简单的图表?
- 怎么更改QQ默认打开链接的浏览器?QQ默认打开网址浏览器怎么换?
- 阳逻吧-阳逻PK盘龙城,哪个地方买房更好
- 长城坦途克300价 坦途克300城市版售价20万元
- 上海迪士尼十大必玩排行:雷鸣山漂流第5,第7小飞侠主题
- 精选!世界最大最豪华邮轮是怎样的
- 全球视讯!十大情侣游玩的场所
- 环球快播:30元内口感最好的香烟细支_30元内口感最好的细支香烟排行榜
- 【环球快播报】hypercar什么意思
- 烟花放得最好看的十个地方 澳大利亚位居榜首
- 环球最资讯丨世界十大最缺水的国家 索马里位居第一
- 焦点信息:来济南需要了解哪些方言?
- 全球热资讯!怡丽丝尔洗面奶怎么样_全球公认最好用的一款洗面奶
- 环球要闻:鞍山十大旅游景点大全 鞍山有什么好玩的地方
- 安康十大旅游景点排名 安康一日游去哪里好
- 当前时讯:全国旅游城市排名10强 三亚大理上榜,第一景点开设200余处
- 环球新动态:折纸船的方法
- 攀枝花十大旅游景点大全 攀枝花一日游哪里好玩
- 今日讯!哪种红灯不可右转图解,右转的四种指示灯详解
- 环球即时看!2020明星微博粉丝排行榜_中国明星粉丝量最多的是谁?
- 每日视讯:最新羽毛球比赛规则
- 世界快资讯丨安吉十大旅游景点排行榜 安吉必玩景点推荐
- 每日快讯!sem运营岗位内容_半分钟了解sem运营
- 双星轮胎质量怎么样 双星轮胎和佳通轮胎哪个质量好
- 全球快讯:汽车绿本是什么,大绿本是车辆登记证/小绿本是完税证明
- 【全球快播报】学士服颜色分类_学士服的这6种颜色原来代表的是这个!
- 【环球报资讯】中国平均工资多少一个月_全国平均工资2021最新公布
- 全球消息!健康和自律有什么关系?
- 雅诗兰黛小棕瓶眼霜怎么辨别真假-雅诗兰黛小棕瓶眼霜真假对比
- 世界观天下!vivo充电提示音在哪设置?
- 世界关注:五菱宏光miniev多少钱一辆 五菱宏光miniev落地多少钱_全款落地价大概3.35万元起
- 全球热文:预防新型冠状病毒吃什么食物好 预防新型冠状肺炎的饮食要点
- 精彩看点:汽车点火开关图解,2种常见点火开关的档位功能介绍
- 微信文件清理怎么设置_正确清理微信文件的方法
- 每日视讯:微信黑名单在哪里可以找到?
电竞
数码
事件
- 世界简讯:推动科技成果转化落地!科技部“火炬科技成果直通车”首抵青岛12-14
- 全球简讯:董家口港区胡家山防波堤项目新进展!这一施工段通过验收12-14
- 【播资讯】截至2022年12月13日24时青岛市新型冠状病毒肺炎疫情最新情况12-14
- 世界观焦点:得了新冠如何“对症下药”? 青大附院感染性疾病科专家来支招12-14
- 当前快看:将于2023年投产!海尔生物医疗生命科学与医疗创新产业园主体竣工12-14
- 【播资讯】时尚体育引领运动潮流!高尔夫球决出“青岛球王”12-14
- 世界视点!湖北抗原检测上报小程序上线,与核酸阴性具同等效力12-14
- 世界杯今日看点:矛盾大战高卢雄鸡降黑马12-14
- 国家卫健委:今起不再公布无症状感染者数据12-14
- 世界时讯:市工业和信息化局发布专项行动计划:2023年青岛软件业务收入突破4000亿元12-14
- 全球消息!飞机、铁路、高速出行逐渐恢复!青岛春运机票预订量环比涨8.5倍12-14
- 世界快讯:12月13日0时至24时山东省新增本土确诊病例20例、本土无症状感染者152例12-14
- 速递!海外“抢单”,这个城市出去挺早、订单不少,但行动低调12-14
- 世界视讯!最新发布!市南区增加愿检尽检核酸采样点,并延长采样时间12-14
- 12月14日胶州市“愿检尽检”核酸采样点发布12-14