gcc显示分段错误

时间:2018-09-10 16:26:10

标签: ubuntu gcc segmentation-fault

我正在尝试运行这个非常简单的程序,该程序实现了计数排序。程序遇到分段错误。 我在这里遇到过类似的问题,但是它们都涉及指针。 我的代码没有指针,当我在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]);
        }

}`

0 个答案:

没有答案