nel momento in cui dovessi passare uno struct* a una funzione, non c'è proprio modo di sapere quant'è la grandezza effettiva di tale struct, se non quello di chiedere a sizeof(struct)?
mi spiego meglio:
struct prova {
char *a;
char *b;
}
struct prova nuova;
non essendo definita la dimensione di "prova", la dimensione di "nuova" potrebbe variare a seconda delle allocazioni che le si fanno durante l'esecuzione, giusto?
quindi,
scrivi_su_file(&nuova);
all'interno di questa funzione, nuova è visto come un puntatore, ma come faccio a conoscere le dimensioni effettive? devo passare alla funzione anche le dimensioni? il sizeof(nuova) al suo interno chiaramente mi restituisce la dimensione di un puntatore.