异常提示:0x78a23bbb (mfc90ud.dll) 处未处理的异常: 0xC0000005: 读取位置 0x00001010 时发生访问冲突。
出错代码段:
void 函数名(CStringArray* abc)
{
int j = 0;CString str;
str=abc->GetAt(j);
if(j++ < abc->GetSize())...语句体...;
str=abc->GetAt(j);
if(j++ < abc->GetSize())...语句体...;
...
}
错误原因分析【来自网络
http://fwq.web521.com/host/P1045/A0788855.shtml】:
cstring占用内存比较大,尤其是循环创建一个cstring局部变量时,由于变量是系统自己释放,有时候可能释放的不及时,就容易出问题。所以说在循环里面最好不要创建cstring局部变量。
可修改为以下:
void 函数名(CStringArray* abc)
{
int j = 0;CString str1,str2;//或数组
str1=abc->GetAt(j);
if(j++ < abc->GetSize())...语句体...;
str2=abc->GetAt(j);
if(j++ < abc->GetSize())...语句体...;
...
}
没有评论:
发表评论