c语言EXC_BAD_ACCESS (code=2, address=0x102a3bf74)

我的代码如下

#include <stdio.h>
#include <string.h>
void permutation(char str[], int len, int cur)
{
    if (cur == len - 1) {
        printf("%s\n", str);
    }

    char tmp;
    for (int i = cur; i < len; i++) {
        tmp      = str[cur];
        str[cur] = str[i];
        str[i]   = tmp;

        permutation(str, len, cur++);

        tmp = str[cur];
        str[cur] = str[i];
        str[i]   = tmp;
    }
}
int main() {
    char* str = "abc";
    int len = strlen(str);
    permutation(str, len, 0);
}

str[cur] = str[i]这里报EXC_BAD_ACCESS ,但是我又不知道问题出在哪。还请各位大佬帮忙看看。
image.png

阅读 5.1k
2 个回答

两个问题

char* str = "abc";  -> char str[] = {'a','b','c',0};
cur++  -> cur+1
        permutation(str, len, cur++);
                            //cur+1
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题