程序“EXC_BAD_ACCESS”

时间:2011-11-15 04:49:25

标签: c++ xcode

我有一个反转char数组的函数,但当它到达某一点时,我收到错误。有人可以帮忙吗?我认为,但是我没有找到任何针对此的具体内容。

char* strrev( char* s )
{
    char  c;
    char* s0 = s - 1;
    char* s1 = s;

    /* Find the end of the string */
    while (*s1) ++s1;

    /* Reverse it */
    while (s1-- > ++s0)
    {
        c   = *s0;
        *s0 = *s1;    // This is where I am receiving the Bad Access.
        *s1 =  c;
    }

    return s;
}

1 个答案:

答案 0 :(得分:2)

我会猜测你正在调用你的函数:

char *s = strrev("pancakes");

如果是这样,那么您正在尝试修改字符串文字,并且许多系统将字符串文字放在只读内存中。如果你这样做:

char s1[] = "pancakes";
char *s2  = strrev(s1);

你应该有更好的运气。