1

同样一个程序vc编译后可以运行gcc编译后不能运行

#include<stdio.h> 
// 打印结果 
void Show(int arr[], int n) 
{ 
    int i; 
    for ( i=0; i<n; i++ ) 
    printf("%d ", arr[i]); 
    printf("\n"); 
} 

//希尔排序 按从小到大排序 
void ShellSort(int arr[], int n) 
{ 
    int i, j, k; 
    int temp, gap; 

    for (gap = n / 2; gap > 0; gap /= 2) //步长的选取 
        { 
                for (i = 0; i < gap; i++) //直接插入排序原理 
                    { 
                            for (j = i+gap; j < n; j += gap) //每次加上步长,即按列排序。 
                                    {
                                                temp=arr[j];
                                                for(k=j;k>0&&arr[k-gap]>temp;k-=gap)
                                                        {
                                                                arr[k]=arr[k-gap];
                                                        }
                                                arr[k]=temp;
                                    }
                    }
        }
}

int main()
{
    int arr_test[13]={81,94,11,96,12,35,17,95,28,58,41,75,15};
    Show(arr_test,13);
    ShellSort(arr_test,13);
    Show(arr_test,13);
    return 0;
}

以上为程序清单,在Windows上vs2015可以正确运行,但在Ubuntu14.04下,终端输入gcc -o shellsort shellsort.c成功编译,但在运行时出现错误:81 94 11 96 12 35 17 95 28 58 41 75 15
段错误 (核心已转储)
,是啥情况?

查看全部
sinat_28704977
_温水青蛙_
2017/06/13 14:39
  • 编译问题
  • 希尔排序
  • gcc
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

3个回复