这是我的代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
char *str = "First string";
char *str2 = "Second string";
strcpy(str, str2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它编译得很好没有任何警告或错误,但当我运行应用程序时,我得到了该错误
Bus error: 10
Run Code Online (Sandbox Code Playgroud)
我想念的是什么?
当我们这样做
char *p ="house";
p = 'm';
Run Code Online (Sandbox Code Playgroud)
这不被允许.
但是当我们做的时候
char p[] = "house";
p[0] = 'm';
printf(p);
Run Code Online (Sandbox Code Playgroud)
它给O/P:鼠标
我无法理解C如何以及在哪里为字符串文字进行内存分配?
c ×2