读书人

错误 0xC0000005

发布时间: 2013-08-04 18:26:16 作者: rapoo

异常 0xC0000005
一个字符串逆序的函数,调试出现如下错误:

Tstrings.exe 中的 0x01241571 处有未经处理的异常: 0xC0000005: 写入位置 0x01247831 时发生访问冲突

static void Reverse3(char* s,int left,int right)
{
if (left>=right)
{
return;
}
char t=s[left];
s[left]=s[right];
s[right]=t;

Reverse3(s,left+1,right-1);
}


发生错误时运行至第8行

[解决办法]
引用:
Quote: 引用:


s[left]=s[right];
//确认下看看你传进来的字符串长度,上面的写法是不是越界了呢?


int main()
{
char* str="zhangwei";
cout<<str<<endl;
CDo::Reverse3(str,1,4);
cout<<str<<endl;
return 0;
}

这是调用,确认没有越界


你传进来是常量字符串不能修改的!
int main()
{
char str[]="zhangwei";// 改成这样!
cout<<str<<endl;
CDo::Reverse3(str,1,4);
cout<<str<<endl;
return 0;
}

读书人网 >C++

热点推荐