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