搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 新手请教关于内存分配与释放的问题
标题:
新手请教关于内存分配与释放的问题
只看楼主
无冥拉丁
来 自:重庆
等 级:
新手上路
帖 子: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
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
2
楼
得分:10
得到的內存與所請求的尺寸不同,但被強制視爲所請求的數據類型,所以釋放時因對不上號出錯。不釋放,操作系統在程序結束後自動回收所有內存——實際上現代的操作系統是不需要釋放這類內存的,但並不保證所有的包括舊系統也有這種機制,所以一般來説釋放穩妥,當你保證程序不運行在太古老偏僻的系統上時,儘管不釋放好了。
授人以渔,不授人以鱼。
2016-03-14 21:55
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
3
楼
得分:0
你不要以為程序運行“無報錯”就沒事,那是你走運,恰好沒事而已,因爲得到的東西與預期實際上是不符的,已經越界使用了資源,恰好沒踩到地雷,表現爲沒報錯,不等於程序這樣寫是對的。
授人以渔,不授人以鱼。
2016-03-14 21:59
无冥拉丁
来 自:重庆
等 级:
新手上路
帖 子:8
专家分:5
注 册:2016-2-26
第
4
楼
得分:0
回复 3楼 TonyDeng
了解了,谢谢你的指点
2016-03-14 22:06
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-462499-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.036419 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved