View Single Post
Old 24-04-2007, 19:08   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da chinchillart Guarda i messaggi
Problema: dato un file di record (definiti da una struct) si suppone che il record sia talmente grande da saturare il buffer ad ogni lettura. Quindi è richiesta una funzione che acceda in lettura ad un solo campo di ogni record del file.
Il tuo modo di determinare l'offset non va molto bene. La struttura infatti potrebbe avere internamente dei "padding". Se su file c'è la struttura scritta per intero (compresi eventuali padding), determinare l'offset sommando le dimensioni dei vari campi non va bene.
Visto che la struttura ha dimensioni davvero modeste (100 byte), leggi la struttura per intero, non singoli campi.
Comunque, in questo casi, è buona cosa specificare al compilatore di usare un allineamento di 1 byte per la struttura.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso