Necesito Sacar el Puntero Nmnode de la Funcion RfF que Lee un Registro del Archivo y lo Carga en un Puntero a ese tipo de Registro. Cuando lo Cargo y Leo antes de Salir de la Funcion esta bien Cargado, pero cuando cuando intento leerlo en el programa principal falla. Aca les Mando las Estructuras, la Funcion y el Programa Principal (Con Impresiones para que vean como queda en la Funcion y como falla en el Programa Principal). Si saben como podria solucionarlo avisenme, muchas gracias.
typedef struct Smnode
{
char NAME[40];
char ADDRESS[50];
double CASH;
struct Smnode *NEXT;
} mnode;
//------------------------------------------------------------------------------
//Type POINTER TO A MAIN NODE
typedef mnode *ptrmn;
//------------------------------------------------------------------------------
//Funcion READ FROM FILE
int RfF (FILE *f,ptrmn *Nmnode)
{
//Variables Locales
mnode MN;
ptrmn Amnode;
Nmnode=malloc(sizeof(mnode));
if ((f=fopen("INFO.dat","rb"))==NULL)
{
puts ("ERROR AL ABRIR EL ARCHIVO");
puts ("");
return 1;
}
fread (&MN,sizeof(MN),1,f);
MN.NEXT=NULL;
(*Nmnode)=&MN;
//Impresion de Prueba
puts ("");
printf ("Nombre: %s\n",(*Nmnode)->NAME);
printf ("Direccion: %s\n",(*Nmnode)->ADDRESS);
printf ("Saldo: %d\n",(*Nmnode)->CASH);
puts ("");
fclose (f);
return 0;
}
//------------------------------------------------------------------------------
int main ()
{
//Variables Locales
ptrmn mNODE;
FILE *f;
RfF (f,&mNODE);
puts ("");
printf ("Nombre: %s\n",mNODE->NAME);
printf ("Direccion: %s\n",mNODE->ADDRESS);
printf ("Saldo: %d\n",mNODE->CASH);
puts ("");
return 0;
} |