簡體   English   中英

由信號SIGSEGV終止(地址邊界錯誤)

[英]terminated by signal SIGSEGV (Address boundary error)

我試圖先查詢用戶的一些輸入,然后用該輸入的數量填充動態列表。 然后以相反的順序打印它們。 由於某種原因,我收到了SIGSEGV錯誤,但是找不到任何無限循環或地址錯誤。 幫我找出問題所在。

#include <stdio.h>
#include <stdlib.h>

int main() {
    int input;
    printf("Enter a non-negative number: ");
    scanf("%d", &input);

    int *listA;
    listA = (int*)malloc(sizeof(int[input]));
    printf("Now, enter %d non-negative numbers: ", input);
    for (int i = 0; i < input; i++) {
        scanf("%d", listA[i]);
    }
    printf("In reverse order, your input is: ");
    for (int i = input-1; i >=0; i-- ) {
        printf("%d",listA[i]);
    }
    free(listA);
    return 0;
}

嘗試在啟用所有警告的情況下編譯代碼(帶有gcc -Wall )。 您的電話:

scanf("%d", listA[i]);

應該:

scanf("%d", &listA[i]);

暫無
暫無

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

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