我有这个代码的麻烦
int main() {
char *My_St = "abcdef";
*(My_St+1)='+';
printf("%s\n",My_St);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我构建了这个代码并且没有错误,但是当我尝试运行它时,它会抛出一个分段错误,有人会告诉我什么错
你不能因为你试图修改const数据.
将其更改为:
char My_St[] = "abcdef";
Run Code Online (Sandbox Code Playgroud)
然后你就可以改变它了.
想想你在做什么,你声明的指针是指向"abcdef".它是一个指针,而不是一个字符数组."abcdef"我的意思是,在.text你的计划领域,你的生活在农场里,这是不可改变的.
当你按照我展示的方式进行操作时,你告诉编译器:我正在声明这个数组,它将包含所需数量的字符,"abcdef"并且,就像你在那里一样,复制"abcdef"到它.
| 归档时间: |
|
| 查看次数: |
5674 次 |
| 最近记录: |