2016-11-30 2 views
0

Я пытаюсь запросить у пользователя сначала количество входов, а затем заполнить динамический список с таким количеством входов. Затем распечатайте их в обратном порядке. По какой-то причине я получаю ошибку SIGSEGV, но я не могу найти никаких бесконечных циклов или ошибки адреса. Помогите мне найти, что не так.завершен сигналом 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; 
} 

ответ

4

Попробуйте скомпилировать код со всеми предупреждениями поддержки (-Wall с gcc). Ваша линия:

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

должно быть:

scanf("%d", &listA[i]); 
Смежные вопросы