注册 登录
编程论坛 C++教室

新人求教:关于用C++中的一个指针问题(希望大家帮忙看下,不胜感激)

海上圣明悦 发布于 2013-08-12 20:05, 429 次点击
int main()
{
    char *a = "hello";
    char *b = "a" ;
    *b = *a;                     //为什么会发生错误,说指针指到了内存中不允许访问的地方呢?
    system("pause");
    return 0;
}
2 回复
#2
yuccn2013-08-12 20:50
"hello"和"a"都存在只读数据段吧。

     char a_temp[] = {"hello"};
     char *a = a_temp;

     char b_temp[] = {"a"};
     char *b = b_temp  ;
     *b = *a;                     
     system("pause");


推荐你看下内存布局的文章
http://
#3
海上圣明悦2013-08-12 21:12
恩,对的,存储在静态存储区域不能对其进行修改,所以要先放到数组中,让它在栈中存储,这样就能进行赋值了。
谢谢您的帮助还有推荐的文章
1