Quote:
Originariamente inviato da chinchillart
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.