| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 705 人关注过本帖
标题:新手请教关于内存分配与释放的问题
只看楼主 加入收藏
无冥拉丁
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:8
专家分:5
注 册:2016-2-26
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:3 
新手请教关于内存分配与释放的问题
今天在编程时不小心将PNODE pNew = (PNODE)malloc(sizeof(NODE))写为PNODE pNew = (PNODE)malloc(sizeof(PNODE))
PNODE与NODE的区别在与PNODE是指针;
后面在释放所分配的内存时报错,但是不进行内存释放时程序运行无报错,请问这是什么原因?求大神指点,谢谢!!
2016-03-14 21:48
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
得到的內存與所請求的尺寸不同,但被強制視爲所請求的數據類型,所以釋放時因對不上號出錯。不釋放,操作系統在程序結束後自動回收所有內存——實際上現代的操作系統是不需要釋放這類內存的,但並不保證所有的包括舊系統也有這種機制,所以一般來説釋放穩妥,當你保證程序不運行在太古老偏僻的系統上時,儘管不釋放好了。

授人以渔,不授人以鱼。
2016-03-14 21:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你不要以為程序運行“無報錯”就沒事,那是你走運,恰好沒事而已,因爲得到的東西與預期實際上是不符的,已經越界使用了資源,恰好沒踩到地雷,表現爲沒報錯,不等於程序這樣寫是對的。

授人以渔,不授人以鱼。
2016-03-14 21:59
无冥拉丁
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:8
专家分:5
注 册:2016-2-26
收藏
得分:0 
回复 3楼 TonyDeng
了解了,谢谢你的指点
2016-03-14 22:06
快速回复:新手请教关于内存分配与释放的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012530 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved