c - 由信号 SIGSEGV(地址边界错误)终止

标签 c segmentation-fault dynamic-list

我试图首先向用户查询一些输入,然后用这些输入填充一个动态列表。然后以相反的顺序打印它们。出于某种原因,我收到 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;
}

最佳答案

尝试在启用所有警告的情况下编译您的代码(-Wallgcc)。你的线路:

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

应该是:

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

关于c - 由信号 SIGSEGV(地址边界错误)终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40897709/

相关文章:

从 vector 中删除时出现 C++ 段错误

C 读取文件到动态列表、动态字符串

python - Ajax 如何使用动态 Django 下拉列表?

c - 为什么 make 打印 "make: Nothing to be done for ` all'."?

c - 我很困惑的基本 C 指针声明和指针变量

c - Linux中自动启动应用程序,输出失败

c - 尝试访问 for 循环中的指针时出现段错误

c - 是什么导致 vsprintf 抛出段错误?

c - 递归连接两个整数

android - 在 Android 中动态创建 Listview