C 改变字符的内容*

C 改变字符的内容*,c,C,我的代码是这样的 Char * q = "Bye"; strcpy (&q[1], "K"); 当我编译它时,它开始挂起。我正在Windows 7中使用MinGW。 即使我将malloc分配给q,问题仍然存在 如果我尝试分配q[1]=“K”,那么当您使用字符串文本初始化字符指针时,它也会挂起,编译器可能会将该字符串存储在只读内存中。如果确实希望字符串可修改,请尝试将其存储在本地堆栈上: Char q[]="Bye"; 编译时可能会挂起代码的副本?您没有试图更改char*的内容。如果你

我的代码是这样的

Char * q = "Bye";
strcpy (&q[1], "K");
当我编译它时,它开始挂起。我正在Windows 7中使用MinGW。 即使我将
malloc
分配给
q
,问题仍然存在


如果我尝试分配
q[1]=“K”
,那么当您使用字符串文本初始化字符指针时,它也会挂起,编译器可能会将该字符串存储在只读内存中。如果确实希望字符串可修改,请尝试将其存储在本地堆栈上:

Char q[]="Bye";

编译时可能会挂起代码的副本?您没有试图更改
char*
的内容。如果你是,那就是
q=something。实际上,您正试图更改它指向的内容,但您的代码甚至无法编译!