C:反转字符串时出现分段错误

时间:2016-02-19 21:07:51

标签: c

    void reverse_String(char a[], int start, int length){
    int i;
    int j = length;
    for(i = start; i != j ; i++, j--){
        a[i] ^= a[j];
        a[j] ^= a[i];
        a[i] ^= a[j];
    }
    printf("%s", a);
   }

int main(int argc, char *argv[]){
    int length;
    char word[strlen(argv[1])];
    strcpy(word,argv[1]);
    length = strlen(word);
    reverse_String(word,0,length);
    return 0;
}

为什么我会为某些条目获取分段错误,但它适用于其他条目? (Argv [1]是输入的任何字符串)

1 个答案:

答案 0 :(得分:4)

如果字符数是偶数,我永远不会等于j。你需要将你的病情改为i< Ĵ