主程序初始化字符串,是字符串常量, 该字符串的内存分配在全局的const内存区。
而char* 声明了一个指针,而这个指针指向的是全局的const内存区,const内存区当然不会让你想改就改的。所以,如果你一定要写这块内存的话,那就是一个非常严重的内存错误。
修改:
char* s 改为 char s[]即可。引用字符串中具体字符的时候*(s+i) 和s[i]都可以。
ps:有关于char* s 和 char s[]的区别见博客。
C++ [Warning] deprecated conversion from string constant to ‘char*‘ [-Wwrite-strings]
最新推荐文章于 2023-08-09 15:19:50 发布