字符指针数组赋值出错
应该会有很多 warning吧,你把 const char* 强制转换为 char *,然后再赋值,具体的不同的编译器下报警不同,内存分配处理机制也会有差异。就像你把一段只读存储器中的常量拿来做写操作,一定会引发异常的。
■网友
额,这个问题很简单。。。你那样定义的是常量字符串,,常量字符串怎么可能修改呢。好,我们说细一点,你的“zero”和“one”都是常量字符串,而这个指针数组中每个元素就是一个字符指针指向zero和one这两个常量字符串,,那当然无法对其进行赋值操作,如果你想创建变量字符串你可以用如下代码:#include\u0026lt;stdio.h\u0026gt;int main(){\tchar s = { "zero" ,"one"};\ts = \u0026#39;a\u0026#39;;\tprintf("%c\", s);\tprintf("%s\", s);}
推荐阅读
- C语言 指针引用数组的地址问题
- Windows中文件名最大字符数
- C语言多维数组声明调用和c为啥差别这么大
- json下面代码字符编码的规则是啥
- AWS或阿里云为何使用密钥对而不是单一字符串作为 Token
- 为啥C++的this是指针而不是引用
- Matlab中怎样在一个array中分别辨字符串和数值
- 编译原理:符号表中为啥要设计字符串表这样一种数据结构
- vb开发中字符串传参出现‘口’符
- 在数据结构树的创建中,为啥要传递一个双指针数据