ycw
ycw
驱动牛犊
驱动牛犊
  • 注册日期2001-06-28
  • 最后登录2002-01-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1107回复:3

请教大侠:在VxD中使用new出现的问题

楼主#
更多 发布于:2002-01-22 15:22
我编写的VxD驱动,需要在驱动程序中动态的得到一段内存用来存储数据,我用了new来申请。
比如说:int * fp=new int (512);
但是,当我进行如下操作时,就出现了错误,计算机重新启动了:
for (int i=0;i<512;i++)
{
*(fp+i)=0;
}

请教各位大侠!

LitteSW
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-01-27 01:49
我到是在驱动中经常用到new。不过和应用层的程序不一样的地方是最好根据自己申请的大小加上说明:

如:PagedPool、NonPagedPool等。


穿梭于都市高楼之间,总是孜孜不倦地追寻着自由,蓦然回首,去发现已陷入深深的枷锁之中
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-01-24 14:29
我从来没有想过在VxD里面用new的。
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-01-24 11:29
使用new 来分配内存时,是分配了512 Bytes空间,而不是512*4 Bytes 空间,所以你越界了。
VtoolsD下,内存分配建议你使用 malloc()。
游客

返回顶部