簡體   English   中英

C:反轉字符串時的分段錯誤

[英]C: Segmentation Fault When Reversing String

    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]是輸入的任何字符串)

如果字符數是偶數,則i永遠不會等於j。 您需要將條件更改為i <j

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM