首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个关于字符指针的简单有关问题

2012-03-19 
一个关于字符指针的简单问题大家帮忙看一下。我就想把a变成8。当然,简便方法是直接用数组改就好了,但这个是

一个关于字符指针的简单问题
大家帮忙看一下。我就想把a变成8。当然,简便方法是直接用数组改就好了,但这个是测试程序,我想知道为什么错了。提示是内存不能read。

C/C++ code
    char *str = "abcd";            printf("%s\n",str);    char *right =str;    *right = '8';    free(right);    printf("%s\n",str);


[解决办法]
"abcd" 是一个常量字符串, 指向内存的只读区域, 所以是不能修改的.
C 语言以前没有 const, 正确的写法应该是 
const char* str = "abcd";
[解决办法]
你修改常量字符串了···
[解决办法]
顶楼错误:你试图写入只读区

1楼错误:你改了*right,但那关*str何事?总不至于说我往路边垃圾桶扔个垃圾,那东西就会跑到你家门口吧?
[解决办法]
你要是把一串常量字符串传递给这些函数,他们照样得出错。
[解决办法]
探讨

引用:
顶楼错误:你试图写入只读区

1楼错误:你改了*right,但那关*str何事?总不至于说我往路边垃圾桶扔个垃圾,那东西就会跑到你家门口吧?


错误的确是这样,但怎么解决这个问题呢

热点排行