为啥核心转储?

Posted

技术标签:

【中文标题】为啥核心转储?【英文标题】:Why the core dumps?为什么核心转储? 【发布时间】:2014-01-23 18:46:04 【问题描述】:

它可以在没有冒泡排序部分的情况下工作。但是当我放入冒泡排序 i 时,它说核心已倾倒。我找不到错误,所以希望有人能帮助我。

#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;

【问题讨论】:

最明显的错误是没有缩进。 【参考方案1】:
for(j=1;j<=i;i++)

应该是

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

否则 i 在内部循环的第一次迭代中超过 lim-1

【讨论】:

以上是关于为啥核心转储?的主要内容,如果未能解决你的问题,请参考以下文章

为啥会生成此核心转储

为啥我会收到“浮点异常(核心转储)”?

为啥我的代码结果显示分段错误(核心转储)?

为啥我在 C 中收到警告“分段错误,核心转储”

为啥 STL 在 find 上映射核心转储?

为啥我的代码会出现分段/核心转储错误?