这段代码错在哪里?执行到*lpdest=(unsigned char)0;就报错。
long i;
unsigned char * lpdest;
//lpdest= (unsigned char *)::malloc(g_height*g_width);
lpdest=new (unsigned char )(262144);
for(i=0;i<262144;i++,lpdest++)
*lpdest=(unsigned char)0;
delete lpdest;
long i;
unsigned char * lpdest;
//lpdest= (unsigned char *)::malloc(g_height*g_width);
lpdest=new (unsigned char )(262144);
for(i=0;i<262144;i++,lpdest++)
*lpdest=(unsigned char)0;
delete lpdest;
解决方案 »
- VC中如何为exe文件添加版本号
- 请问VC6如何截取退出消息?
- 谁能帮我:warning RC2182 : duplicate dialog control ID 1007,这个错误如何解决!
- 如何在VC中设置打印机打印完一页后不走纸!急!!!
- 高手请进,帮助解决老师布置的作业,很多同学都不会!谢谢了!
- 请问我在挂全局钩子的时候总是返回NULL给我,总是失败,是什么原因?(在线等)
- VC环境下,建立一个类,然后定义了个一实例,用的时候不能显示类的成员变量和函数
- 我来【提个建议】:关于论坛框架重构
- msdn的网站怎么用?我怎么总看不懂他的结构?大家都怎么在上面找资料的??
- 我将winmm.lib库装入了,一切设置正常,但为什么会说该库找不到?
- 高手请看:如何用create创建radio
- ??请问静态连接库中自身的代码可否加载库中的资源
我认为是这句的问题,你意图是new一个数组,但是以上不是,只是分配了一个unsigned char的空间,还给了初始值262144(?)。这不是一个数组,所以下面的循环当然会出错,因为越界了。
是不是应该这样写:
lpdest = new (unsigned char )[262144];
改为
lpdest = new unsigned char[262144];
理由titi_lima已经说过了!