0

有人可以指出这个错误

#include <stdio.h>
void modify (char*s,int x,int y)
{
    s[x]=s[y];
}
main()
{
   char* s = "random";
   modify(s,1,2);
}

节目突然结束。我知道这可能是一个非常简单的问题,但我是 c 新手。谢谢 !

4

2 回答 2

6

这是因为它在分配期间崩溃modify。原因是指针指向一个不能修改的常量字符串。

如果要修改字符串,可以将其声明为数组:

char s[] = "random";
于 2013-01-08T14:30:46.793 回答
0

就是这样。我曾经遇到过同样的问题。你应该替换这一行:

 char *s = "random";

与以下一个:

char s[] = "random";
于 2013-01-08T14:39:13.627 回答