C使用strcpy修改字符**
我现在对指针有点困惑,有人能给我解释一下为什么试图用C使用strcpy修改字符**,c,string,strcpy,C,String,Strcpy,我现在对指针有点困惑,有人能给我解释一下为什么试图用strcpy()更改char**会导致分段错误 void *change_string(char **string) { char *add = "Changed!"; strcpy(*string, add); return 0; } int main() { char *p = "Original-"; change_string(&p); printf("%s",p); } 您的指针p指向一个字符串文本,您可以在调
strcpy()更改char**
会导致分段错误
void *change_string(char **string) {
char *add = "Changed!";
strcpy(*string, add);
return 0;
}
int main() {
char *p = "Original-";
change_string(&p);
printf("%s",p);
}
您的指针p
指向一个字符串文本,您可以在调用strcpy(3)
时修改该字符串。修改字符串文字是未定义的行为。我只是被赋予了“分段错误”char*p=“Original-”
应该是char*p=strdup(“Original-”)
,否则,修改p
是未定义的行为