您可能会遇到seg故障,因为您没有为指针分配任何内存
int *v
然后你试着给它赋值,就像它是一个数组一样。而且
int n;
从未初始化,因此您将进入未定义的行为。而且
File
不是一种类型,除非你自己做了你没有展示的,应该是
FILE
。
尝试以下操作:
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUMS 1024
int main()
{
int *v;
int i=0, j=0, aux=0, n = 0;
FILE *fp;
fp = fopen("Inteiros.txt", "r");
if(fp == NULL) {
printf("Erro, ficheiro nao encontrado!\n");
return 1;
}
else {
if ((v = malloc(sizeof (int) * MAX_NUMS)) == NULL) {
printf("Error in malloc\n");
return 1;
}
while(!feof(fp)) {
fscanf(fp, "%d", &v[i]);
i++;
}
n = i;
for(i = 0; i < n; i++) {
for(j = 0; j < n-i-1; j++) {
if(v[j] > v[j+1]) {
aux = v[j];
v[j] = v[j+1];
v[j+1] = aux;
}
}
}
for (i = 0; i < MAX_NUMS; i++)
printf("v[%d] is %d\n", i, v[i]);
}
return 0;
}