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

请教字符串问题

Waiting159 发布于 2008-03-14 23:36, 553 次点击
[size=6]#include <iostream>
using namespace std;
int main(){
    char *p = "Hello!";
    *(p+1) = 'a';

    system("pause");
    return 0;
}
[/size]

//为什么运行时报错?

[[it] 本帖最后由 Waiting159 于 2008-3-14 23:38 编辑 [/it]]
7 回复
#2
sunkaidong2008-03-15 08:45
这个问题不是很清楚..用数组肯定没问题..但是用指针却会有没有句柄和非法访问错误..你试试其它编译器呢
#3
aipb20072008-03-15 10:26
p指向存放在静态存储区的常量字符串,不允许修改

改成char数组就可以,用的堆栈
#4
sunkaidong2008-03-15 10:44
我调试的时候没现实是常量字符串啊?斑竹有什么书提到吗?c++primer?
#5
xianshizhe1112008-03-15 14:08
这不是争风吗?
#6
xianshizhe1112008-03-15 14:20
char *p = "a";
char *q='a';
字符串形式,非字符形式.
#7
sunkaidong2008-03-15 14:30
我也以为是疯歌呢...呵呵
#8
muse2008-03-15 15:43
非法使用指针
1