我用的是VC++6.0
在写一个函数时用以下代码:
char *p=NULL;
p = new char[64];
memset(p,0,64);
strcpy(p,"");
.........
.......
strcpy(p,"lasfjlsdj");
delete [] p;在用单步执行执行到这里时报错为“unhandled exception in test.exee:0xc0000005:Access Violation"在Debug版本运行就报:”0x00459a3d指令引用“xdddddde1"内在。该内存不能为”written"
这是什么原因造成的!把delete[] p去了后就没问题
在写一个函数时用以下代码:
char *p=NULL;
p = new char[64];
memset(p,0,64);
strcpy(p,"");
.........
.......
strcpy(p,"lasfjlsdj");
delete [] p;在用单步执行执行到这里时报错为“unhandled exception in test.exee:0xc0000005:Access Violation"在Debug版本运行就报:”0x00459a3d指令引用“xdddddde1"内在。该内存不能为”written"
这是什么原因造成的!把delete[] p去了后就没问题
解决方案 »
- 函数体内变量与对象生命期问题
- 添加ActiveX时,用添加新类-〉添加MFC ActiveX类生成的包装类文件少了很多属性。在Dialog中加入一个同样的ActiveX控件就很好?
- 算发求解(等距线算发求解)高手请近!
- 这个函数怎么没有实现屏蔽Ctrl+Alt+Dele涅?
- 请问学习多线程编程要看哪本书比较好
- 添加ATL简单对象的问题
- 哪有《Windows 核心编程》源代码下载?要好用的,我下了一个,不好用。
- 快速傅里叶算法
- 发现风险软件invader
- 不懂VC++与ATL,现要用ATL开发一个聊天软件,工作端用ATL开发,服务端可以用MFC,不知道如何下手,急急急.......高手帮帮忙,请提供源程序或方法!!
- 二进制流和字符串流有什么区别吗
- 命令行参数问题
实在不行就
if (p!=NULL) delete[] p;
在没有
memset(p,0,64);
strcpy(p,"");
.........
运行时报的是DebugError有时候,什么Damage:after normal block (#326171)at 0x01491700
{
delete [] p;//这里还是出现 unhandled exception in Test.exe:0xc0000005:AccessViolation
p == NULL;
}
{
delete [] p;//这里还是出现 unhandled exception in Test.exe:0xc0000005:AccessViolation
p == NULL;
}
#include <string.h>
void main()
{
char *p=NULL;
p = new char[64];
memset(p,0,64);
strcpy(p,"");
strcpy(p,"lasfjlsdj");
delete [] p;
}
没有错误啊。
原因肯定在你的
.........
.......
里面。