Es cierto lo que vos decís. Sé que no es lo mismo, pero a lo que voy es
que no estoy seguro de que sea bueno escribir directamente una estructura de
esa forma. Pensá que al leerlo sin tipo el fwrite recorrerá todo el registro
sin importar dónde hay información y dónde no. Lo que estaría haciendo es
leer lugares que no están inicializados porque no corresponden a datos. Sin
embargo no pisaría memoria porque se ha reservado según el sizeof que tiene
en cuenta la alineación.
Por eso doy esta opción a probar. Además de esa forma podés asegurarte
que el problema sea el fwrite.
Saludos
Tito
----- Original Message -----
From: "Sebastián Santisi" <[EMAIL PROTECTED]>
To: "Una lista para consultas de programación"
<[email protected]>
Sent: Wednesday, March 19, 2008 12:48 PM
Subject: Re: [Prog] problema valgrind - byte(s) no inicializados ??
Hola, Tito;
Tito escribió:
Probaste escribiendo campo por campo con fwrite? Creo que el problema
puede ser intentar escribir todo el registro junto.
Tal vez:
fwrite(&(reg1->nro), sizeof(int), 1, p);
fwrite(&(reg1->letra), sizeof(char), 1, p);
Cuidado que esto no tiene nada que ver con escribir una estructura.
Estás escribiendo sueltos enteros y chars y no son lo mismo.
Una estructura es un paquete, y como paquete tiene alineados sus miembros,
y está alineada ella misma; escribir un int más un char, en una
arquitectura de 32bits es escribir 5 bytes, mientras que escribir una
estructura de un int más un char en seguramente serán 8 bytes. Hacé una
prueba fijándote en los sizeofs de ambas cosas.
No es que no se pueda escribir miembro por miembro; pero son dos cosas
similares, y no intercambiables.
(Para ver una manera de escribir por miembros y compatible con la
estructura, consultá la macro offsetof()).
Saludos;
Sebastián Santisi
[EMAIL PROTECTED]
Saludos
Tito
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion