C程序编译,但在执行后立即终止
我有一个简单的c程序,它由main.c和selection\u sort.c组成。 我使用gcc-Wall-Wextra main.c selection\u sort.c进行编译 我没有收到任何警告错误,但当执行时,它立即终止,没有任何printf或system quot。我正在使用Linux操作系统C程序编译,但在执行后立即终止,c,linux,gcc,C,Linux,Gcc,我有一个简单的c程序,它由main.c和selection\u sort.c组成。 我使用gcc-Wall-Wextra main.c selection\u sort.c进行编译 我没有收到任何警告错误,但当执行时,它立即终止,没有任何printf或system quot。我正在使用Linux操作系统 //main.c #include <stdio.h> #include <stdlib.h> #include <time.h> void select
//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]);
}
}
编译时应使用:
gcc -o main main.c selection_sort.c -Wall -Wextra
试试这个:
gcc -c main.c
gcc -c selection_sort.c
gcc -o myprog main.o selection_sort.o
./myprog
如果选择\排序函数被添加到主.c文件中,对我来说效果很好。以哪种方式?像gdb?不,遗憾的是,我不太熟悉gdb的使用。这个程序在这里运行得很好,但是它没有对数组进行排序。对于fedorqui来说,这就是问题所在。这个程序是一个学校作业,它应该是一个多源文件程序。你能给我们展示一个你运行这个程序却什么都没发生的例子吗?e、 g.从终端复制/粘贴。从这里很难说,是的!非常感谢这一点。编译完程序后,您是如何启动程序的?这与gcc选择_sort.c main.c-o myprog有什么区别?thx@notbad:实际上none@MichaelWalz所以问题是他没有跑。/a.出去?: