Hola, quiero hacer el mismo ejercicio, pero usando la función calloc, puesto que ya sé de antemano cuántos registros voy a introducir, pero me da error: En la función ‘main’:
leer_fich_bin.c:50: error: expected expression before ‘)’ token
Código C:
Ver original#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TAM 4
struct registro{
char nombre[50];
char edad[3];
};
int main ()
{
FILE *fich;
char op;
int i;
struct registro datos;
struct registro *ptr_reg;
/* Escritura del float en el fichero */
if ((fich
= fopen ("cadenas.dat", "wb")) == NULL
) {
printf ("Error de creación del fichero\n");
}
else{
do{
printf("Introduce una cadena: "); scanf("%49s",datos.
nombre); fwrite (&datos
, sizeof (datos
), 1, fich
); }while((op == 's') || (op == 'S'));
}
/* Lectura del float del fichero */
if ((fich
= fopen ("cadenas.dat", "rb")) == NULL
) {
printf ("Error de existencia del fichero\n");
}
else{
ptr_reg
= (datos
*)calloc(TAM
,sizeof(datos
)); fread(ptr_reg
, sizeof(struct registro
), TAM
, fich
); }
for(i = 0; i < TAM; i++)
printf("%s %s\n", ptr_reg
[i
].
nombre,ptr_reg
[i
].
edad);
}