当前位置:回答三>生活百科>c++ 0xC0000005:Access Violation错误 求真相 求解释

c++ 0xC0000005:Access Violation错误 求真相 求解释

2024-11-28 10:07:29 编辑:join 浏览量:598

c++ 0xC0000005:Access Violation错误 求真相 求解释

#include

using namespace std;

void main()

{

char a[] = "dfdfd,dfd";///直接用c指向常量字符串之后,你尝试修改常量字符串的内容,就会挂,放数组里即可

char *c = a;///因为不允许修改常量

char *s = c;

for(; *c; c++)

{

*s = 'a';

s++;

}

cout<

}

指针c已经指向字符串结束之后的位置了(可能非法),从而cout输出时访问 越界。

另外,这个程序目的是将字符串c的所有字符替换为'a'么?不需要引入字符串s的,这个程序中的s指针没什么作用,可以直接用c代替。

int main()

{

char *c = "dfdfd,dfd";

for(; *c; c++)

*c = 'a';

cout<

}

*s = 'a';错误,不允许修改。

char *c = "dfdfd,dfd";这样定义,则为只读,不可以更改。

而且,c和s的指针值都变了,一般会保留一个不动得。不然输出就没法找回原来的起始位置了。

修改成如下吧。

char c[] = "dfdfd,dfd";

char *s =c;

for(; *s; s++)

*s = 'a';

cout<

return 0;

访问越界,将char *c改为char c,中括号里是字符串的大小,由你自己定,

char c= "dfdfd,dfd";

char *p=c;

while(*p !='\0')

{

*p++ = 'a';

}

cout<

标签:c++,0xC0000005,Access

版权声明:文章由 回答三 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.huidasan.com/life/340338.html
热门文章