Traducción de Addrbook
# include ltstdio.h gt
# include ltmalloc.h gt
# include ltstring.h gt
Dirección de la estructura
{
int a;
int b
char c; * Siguiente;
};
void SaveToFile(dirección de estructura *p, archivo *fp)
{
if (p! = vacío)
{
Hacer
{
fwrite(p, sizeof(dirección de estructura), 1, FP); /p>
p = p- gt;
}
Y (p! = NULL
}
<); p>}int load(FILE *fp, struct Address **head, int ampN) //Lee los datos del archivo y crea una lista vinculada.
{
Dirección de estructura *p1, * p2
*head = (dirección de estructura*) malloc(sizeof(dirección de estructura));
memset(*head, 0, sizeof(dirección de estructura));
if( fread(*head, sizeof(dirección de estructura), 1, fp)!= 1)
{
Gratis(*cabeza);
* cabeza = NULL
retorno(0);
}
p2 = *cabeza;
n;
y (!feof(fp))
{
p1 = (dirección de estructura*) malloc(sizeof(dirección de estructura));
fread(p1, sizeof(dirección de estructura), 1, FP);
p2->; 1;
p2 = p 1;
n;
}
p2->; siguiente = NULL
Return(n);
}
void main()
{
Dirección de estructura * encabezado;
int n = 0;
Dirección de estructura * Prueba[10] = { 0 }
int I = 0
ARCHIVO * fp =; NULL
for(;ilt10;i)
{
Prueba[i] = (dirección de estructura*)malloc(sizeof(dirección de estructura)); /p>
if(Test[i]!=null)
{
memset(Test[i], 0, sizeof(dirección de estructura));
p>
//Ingresa tus datos (a,b,c)
//Como se muestra a continuación
Prueba[I]- gt;a = 100 I;/ /Si no se usa, comentarlo
}
}
for(I = 0;ilt10;i)
{
If (i lt10)
{
Prueba[I]- gt; next = Prueba[I 1] //Vincular el puntero de estructura; a una lista enlazada en el medio.
}
}
if((fp = fopen("addrbook","wb"))!=null)
{
Guardar en archivo(Prueba[0], FP);
fclose(FP);
}
if((fp =); fopen("addrbook","rb"))!=null)
{
load(FP amp; encabezado, n);
} p>
}