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

发布于 2022-09-12 02:31:22 字数 698 浏览 24 评论 0

我的代码如下

#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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

只有一腔孤勇 2022-09-19 02:31:22

两个问题

char* str = "abc";  -> char str[] = {'a','b','c',0};
cur++  -> cur+1
节枝 2022-09-19 02:31:22
        permutation(str, len, cur++);
                            //cur+1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文