smalldragon ha scritto:
il problema consiste nel capire se la struttura passata alla funzione sia compatibile con quella ricavata dal record del file letto.
Dando momentaneamente per scontata l'integrità e l'organizzazione dei dati nei file di cui si discute, tale problema (determinazione automatica a runtime di tipo e dimensione di una variabile o aggregato di variabili)
non ammette soluzione in linguaggio C, e per la cronaca neppure in subset del C++ come EC++ che non supportano l'onerosa RTTI e funzioni annesse. Anche l'idea di sfruttare le eventuali informazioni di debug è inerentemente poco praticabile, sia pure in un'applicazione strettamente per uso personale.
L'unico approccio ingegneristicamente coerente al problema consiste nel ricorso alla memorizzazione esplicita di informazioni aggiuntive sull'aggregato (struct), codificando in modo intelligente il numero, la posizione e il tipo dei campi, ossia in ultima analisi il formato del record: il che ne consente, con ogni evidenza, una immediata convalida diretta a runtime rispetto alla medesima codifica (letta da file o calcolata al volo) del tipo record presente nel file.