C程序编译,但在执行后立即终止

时间:2013-12-17 09:36:17

标签: c linux gcc

我有一个简单的c程序,由main.cselection_sort.c组成。 我正在使用gcc -Wall -Wextra main.c selection_sort.c进行编译 我没有收到任何警告错误,但在执行时会立即终止而没有任何printfsystem quot。我正在使用Linux操作系统。

//main.c

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void selection_sort();

int main(void) {
    printf("Program started...\n");
    selection_sort();
    printf("Selection_sort has finished...\n");

    return 0;
}


//selection_sort.c
#include <stdio.h>
#include <stdlib.h>
#define size 10000

void selection_sort() {
    int i,j, array[size];

    for(i = 0; i < size; i++) {
        int num = rand() % size;
        array[i] = num;
        printf("%d ", num);
    }

    for(i = 0; i < size; i++){
        int max_index = i;
        for(j = 0; j < size; j++) {
            if(array[j] > max_index) {
                max_index = array[j];
            }
        }

        int tmp = array[i];
        array[i] = array[max_index];
        array[max_index] = tmp;
    }

    printf("\n");

    for(i = 0; i < size;i++){
        printf("%d", array[i]);
    }       
}

2 个答案:

答案 0 :(得分:0)

你应该用于编译:

    gcc -o main  main.c selection_sort.c -Wall -Wextra

答案 1 :(得分:0)

试试这个:

gcc -c main.c
gcc -c selection_sort.c
gcc -o myprog main.o selection_sort.o
./myprog