无法修改char* - 内存访问冲突

Vex*_*toR 6 c++ arrays pointers char

为什么会说"内存访问违规"?

  char* str = "HelloGuys";
  int len = strlen(str);
  for (int i=0; i<(len/2); ++i){
        char t = str[len-i-1];
        str[len-i-1] = str[i]; //error
        str[i] = t;
  }
Run Code Online (Sandbox Code Playgroud)

Pra*_*rav 22

字符串文字存储在内存的只读部分中.任何修改字符串文字内容的尝试都会调用Undefined Behavior(大多数实现中的分段错误).

请使用字符数组

char str[] = "HelloGuys";
Run Code Online (Sandbox Code Playgroud)