c语言 编写一个翻转char数组的时候,一直报错:EXC_BAD_ACCESS

问题遇到的现象和发生背景

c语言 编写一个翻转char数组的时候,一直报错:EXC_BAD_ACCESS
编译工具:clion

问题相关代码,请勿粘贴截图

/**

  • 翻转字符数组
  • @param arr 需要翻转的字符数组
  • /
    void reserve(char *arr) {
    int len = strlen(arr);
    for (int i = 0; i < len / 2; ++i) {
      char tmp = arr[i];
      arr[i] = arr[len-i-1];
      arr[len - 1 - i] = tmp;
    
    }
    }
    运行结果及报错内容

img

我的解答思路和尝试过的方法

写了一个char *arr = "111";的用例
尝试在函数内部打印arr的值,arr的三个值都可以获得,却无法给arr的各个元素赋值

我想要达到的结果

翻转arr

你的arr是怎么定义的,是不是没有申请内存