当前位置:酷百书>百科知识>c++ 0xC0000005:Access Violation错误 求真相 求解释

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

2024-04-12 20:18:52 编辑:join 浏览量:561

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

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.kubaishu.com/article/422446.html
热门文章