¿Alguien sabe por que me da violacion de segmento (core generado) este código?
Incluyo tambien el fichero por si puede ayudar.
Código
/*Incluyo las libreria stdio.h porque voy a usar ficheros*/ #include<stdio.h> /*Añado la libreria string.h para poder usar strings o cadenas*/ #include<string.h> /*Defino las longitudes maximas dpara vectores y cadenas de caracteres*/ #define DIMMAX 200 #define STRMAX 200 /*Realizo la primera funcion del programa, en la cual pido el nombre del fichero de lectura. Argumentos de entrada: char NombreFichero[]: Variable de tipo char donde tengo el nombre del fichero de lectura FILE* Fichero: Variable de tipo FILE donde esta el fichero de lectura de datos Argumentos de salida: No tiene */ void pedirNombre(){ char NombreFichero[100]; FILE* Fichero; /*Uso un bucle do...while, para pedir el fichero hasta que se logre abrir*/ do { /*Si no lo logra abrir, se lo comunica al usuario por pantalla*/ if(Fichero==NULL){ } } while(Fichero==NULL); } /*Hago la funcion principal, donde recopilo toda la informacion de mi programa*/ int main(){ char NombreFich[STRMAX]; FILE* Fich; float CantidadNumeros,Numeros[DIMMAX],SumaNumeros,Media; int i; /*Llamo a la funcion anterior*/ pedirNombre(&NombreFich,&Fich); /*Abro el fichero de lectura de datos*/ /*Inicializo las variables a 0 para el bucle, que me recorrera todo el fichero*/ CantidadNumeros = 0; SumaNumeros = 0; i = 0; /*Leo los numeros del fichero y los almaceno en un array flotante*/ /*Sumo dichos numeros*/ SumaNumeros = SumaNumeros + Numeros[i]; i = i + 1; CantidadNumeros = CantidadNumeros + 1; } /*Calculo la media de los numeros y devuelvo la informacion por pantalla*/ Media = SumaNumeros / CantidadNumeros; printf("En el fichero hay: %.0f numeros\nLa media de los numeros del fichero es: %f\n",CantidadNumeros,Media); /*Cierro el fichero al acabar el programa*/ }