一个关于字符指针的简单有关问题
一个关于字符指针的简单问题
大家帮忙看一下。我就想把a变成8。当然,简便方法是直接用数组改就好了,但这个是测试程序,我想知道为什么错了。提示是内存不能read。
------解决方案--------------------
"abcd" 是一个常量字符串, 指向内存的只读区域, 所以是不能修改的.
C 语言以前没有 const, 正确的写法应该是
const char* str = "abcd";
------解决方案--------------------
你修改常量字符串了···
------解决方案--------------------
顶楼错误:你试图写入只读区
1楼错误:你改了*right,但那关*str何事?总不至于说我往路边垃圾桶扔个垃圾,那东西就会跑到你家门口吧?
------解决方案--------------------
你要是把一串常量字符串传递给这些函数,他们照样得出错。
------解决方案--------------------
大家帮忙看一下。我就想把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何事?总不至于说我往路边垃圾桶扔个垃圾,那东西就会跑到你家门口吧?
------解决方案--------------------
你要是把一串常量字符串传递给这些函数,他们照样得出错。
------解决方案--------------------