C - Paso de cadenas a una funcion

Iniciado por Niber, 5 Junio 2019, 13:36 PM

0 Miembros y 1 Visitante están viendo este tema.

Niber

Hola,  estoy haciendo un programa que recupera de un archivo los contactos de una agenda. Mi problema es el siguiente, tengo una función  que lee de un fichero los contactos que haya,  no puede abrir el fichero devuelve NULL (el fichero existe). El problema es por el paso del nombre del fichero a la función. No entiendo bien como funciona en C (en otros lenguajes se puede  declarar un string  ) Agradeceria si alguien me pudiese explicar como funciona pasar cadenas de caracteres a una función, sin saber la longitud de la cadena.

declaración función
void recuperarRegistros(Agenda **inicio,Agenda **ultimo,char const *nombreFich);
//Recupera lista de contactos de un archivo

llamada a la función desed el main
recuperarRegistros(&inicio,&ultimo,"agenda.txt");

Función para leer los registros
void recuperarRegistros(Agenda **inicio,Agenda **ultimo,char const *nombreFich)
{
Agenda nuevo;
FILE *f;

f=fopen(nombreFich,"r");

if (f==NULL)
printf("\n Error al abrir el archivo");
else
{
while (fread(&nuevo.datos,sizeof(Contacto),1,f)>0)
{
nuevo.back=NULL;
nuevo.next=NULL;
addContactoFinal(inicio,ultimo,nuevo);
}
fclose(f);
}
}




Niber

Después de dar vueltas, ya lo he solucionado, era un error tonto,con el nombre del archivo  ;D