首页 > 解决方案 > gcc 显示分段错误

问题描述

我正在尝试运行这个实现计数排序的非常简单的程序。程序遇到分段错误。我在这里遇到了类似的问题,但它们都涉及指针。我的代码没有指针,当我在 gcc 7.3.0 上运行代码时,用于扫描整数的 for 循环似乎永远循环。但是当我在 gcc 4.8.5 上运行它时,它会显示分段错误。我完全迷失在这里。我的代码是:

`

void main(){

int i=0,j=0,tmp=0,elements[10],max_ele=0,size_arr[max_ele],sorted_arr[10];

printf("Please enter 5 elements\n");

for(i=0;i<5;i++){
        scanf("%d",&elements[i]);
            }

//Finding max element in the elements array
for(i=0;i<5;i++){
    if(max_ele<elements[i]){
                max_ele=elements[i];
                }
        }

//Setting size_arr as 0
for(i=0;i<max_ele;i++){
        size_arr[i]=0;
}


//Setting the count of elements present
for(i=0;i<5;i++){
        size_arr[elements[i]]++;
        }

//Sorting
for(i=0;i<=max_ele;i++){
        tmp=size_arr[i];
        while(tmp--){
                sorted_arr[j]=i;
                j++;
                }
        }
printf("Sorted array is:\n");
for(i=0;i<5;i++){
        printf("%d\n",sorted_arr[i]);
        }

}`

标签: ubuntugccsegmentation-fault

解决方案


推荐阅读