libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1880回复:11

用NEW分配内存,必须用DELETE释放??

楼主#
更多 发布于:2003-12-02 21:23
用DS写驱动,语法格式是C++的,
在头文件里定义全局变量BUF;
在一例程里用NEW给BUF分配1K的内存,然后在其他例程里使用,使用没什么问题?
我的问题是这个内存一定要在驱动退出前释放吗?
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
CYoung
驱动中牛
驱动中牛
  • 注册日期2003-06-10
  • 最后登录2005-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-03 09:41
当然要了,和C++是一样的
答得好的话,请兄弟们加点分,那是对我的肯定
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-03 10:04
当然要了,和C++是一样的


在什么地方释放?
我申请的内存在程序整个运行过程中都需要,当关机的时候才不需要,我要在系统关闭例程里释放?
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
CYoung
驱动中牛
驱动中牛
  • 注册日期2003-06-10
  • 最后登录2005-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-03 10:34
可以的。
答得好的话,请兄弟们加点分,那是对我的肯定
Goge
驱动牛犊
驱动牛犊
  • 注册日期2002-07-26
  • 最后登录2004-10-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-03 13:08
无论是分页的或是不分页的内存(使用new生成的),在不需要的时候一定要释放(无论需不需要释放),这是一个标准。
如果系统关闭才释放的话,在析构函数中或unload释放。
不可以在Close或CloseUp中释放
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-12-04 21:26
既然是只在关机的时候才需要释放的,那释不释放有什么关系?反正shutdown了 。
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-12-06 11:28
既然是只在关机的时候才需要释放的,那释不释放有什么关系?反正shutdown了 。


我不在SHUTDOWN例程里释放了分配的内存,但关机的时候是蓝屏,但我在SHUTDOWN里程里释放分配的内存,关机还是蓝屏,很奇怪,蓝屏是在关机的时候,SOFTICE也不能定位,因为那时候SOFTICE也停止运行了,我该怎么办??
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2003-12-06 12:21
不是因为内存分配、释放的问题吧?
蓝屏上写的什么呢?
reboot不蓝吗?
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-12-07 10:54
不是因为内存分配、释放的问题吧?
蓝屏上写的什么呢?
reboot不蓝吗?


我也觉得不是内存分配和释放的问题,因为我有两个驱动。都是用DS写的,另一个也分配了很多的内存,在系统关闭例程里没有释放,关机时不蓝屏重启,而这个确蓝屏重启,错误代码有好多个,最经常碰到的是0x1e,内核模式产生一个未处理的异常。
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2003-12-07 11:03
只在关机的时候蓝,而且每次都不一样?
那你就麻烦了 :D
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-12-07 16:22
只在关机的时候蓝,而且每次都不一样?
那你就麻烦了 :D


差不多是这样的情况,大哥的意思是DS本身的问题?怎么解决?
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
11楼#
发布于:2003-12-07 18:31
我的意思是“我不知道是怎么回事” :P
不然我就告诉你了。
游客

返回顶部