c - 为什么会出现核心转储?

标签 c arrays segmentation-fault coredump

它无需冒泡排序部分即可工作。但是当我进行冒泡排序时,它说核心已被倾倒。我找不到错误,所以我希望有人能帮助我。

#include<stdio.h>
#define lim 2000

int main()
{
    int a[lim],i,j,t;
    FILE *pf;

    pf=fopen("ulaz.txt","r");

    for(i=0;i<lim;i++)
    {
        fscanf(pf,"%d",&a[i]);
    }

    fclose(pf);

    for(i=lim-1;i>=0;i--)
    {
        for(j=1;j<=i;i++)
        {
            if(a[i]>a[i-1])
            {
                t=a[i];
                a[i]=a[i-1];
                a[i-1]=a[i];
            }
        }
    }


    for(i=0;i<lim;i++)
    {
        printf("%d ",a[i]);
    }

    puts("\n");
    return 0;
}

最佳答案

for(j=1;j<=i;i++)

应该是

for(j=1;j<=i;j++)

否则我在内循环的第一次迭代时会超过 lim-1

关于c - 为什么会出现核心转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21316790/

相关文章:

c - 多边形程序中的点

arrays - 如何在一次迭代中找到数组中的第二个最大元素?

php - 代码点火器/PHP : How to merge distinct arrays and make it unique into one array in query result

c++ - Linux - 有时只会出现段错误 - 如何调试

c++ - 如何从 PCM 数据(C/C++)写入 mp3 帧?

c - 我使用链表(没有数组)创建了一个堆栈,但我的 pop 函数不起作用

c - 尝试生成 base64 编码值时出现段错误 - C

c - Wolfcryp RSA 解析 key 分段失败

c - 解析以逗号分隔的字符串只能工作一次?

php - isset() 为不存在的数组键返回 true 的奇怪行为