阅读:1990回复:11
用NEW分配内存,必须用DELETE释放??
用DS写驱动,语法格式是C++的,
在头文件里定义全局变量BUF; 在一例程里用NEW给BUF分配1K的内存,然后在其他例程里使用,使用没什么问题? 我的问题是这个内存一定要在驱动退出前释放吗? |
|
|
沙发#
发布于:2003-12-03 09:41
当然要了,和C++是一样的
|
|
|
板凳#
发布于:2003-12-03 10:04
当然要了,和C++是一样的 在什么地方释放? 我申请的内存在程序整个运行过程中都需要,当关机的时候才不需要,我要在系统关闭例程里释放? |
|
|
地板#
发布于:2003-12-03 10:34
可以的。
|
|
|
地下室#
发布于:2003-12-03 13:08
无论是分页的或是不分页的内存(使用new生成的),在不需要的时候一定要释放(无论需不需要释放),这是一个标准。
如果系统关闭才释放的话,在析构函数中或unload释放。 不可以在Close或CloseUp中释放 |
|
5楼#
发布于:2003-12-04 21:26
既然是只在关机的时候才需要释放的,那释不释放有什么关系?反正shutdown了 。
|
|
6楼#
发布于:2003-12-06 11:28
既然是只在关机的时候才需要释放的,那释不释放有什么关系?反正shutdown了 。 我不在SHUTDOWN例程里释放了分配的内存,但关机的时候是蓝屏,但我在SHUTDOWN里程里释放分配的内存,关机还是蓝屏,很奇怪,蓝屏是在关机的时候,SOFTICE也不能定位,因为那时候SOFTICE也停止运行了,我该怎么办?? |
|
|
7楼#
发布于:2003-12-06 12:21
不是因为内存分配、释放的问题吧?
蓝屏上写的什么呢? reboot不蓝吗? |
|
8楼#
发布于:2003-12-07 10:54
不是因为内存分配、释放的问题吧? 我也觉得不是内存分配和释放的问题,因为我有两个驱动。都是用DS写的,另一个也分配了很多的内存,在系统关闭例程里没有释放,关机时不蓝屏重启,而这个确蓝屏重启,错误代码有好多个,最经常碰到的是0x1e,内核模式产生一个未处理的异常。 |
|
|
9楼#
发布于:2003-12-07 11:03
只在关机的时候蓝,而且每次都不一样?
那你就麻烦了 :D |
|
10楼#
发布于:2003-12-07 16:22
只在关机的时候蓝,而且每次都不一样? 差不多是这样的情况,大哥的意思是DS本身的问题?怎么解决? |
|
|
11楼#
发布于:2003-12-07 18:31
我的意思是“我不知道是怎么回事” :P
不然我就告诉你了。 |
|