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);
}
}