Ok, grazie.
Una cosa che salta subito all'occhio e'
Codice:
seat = nuovoPosto(posto+1, fila+1);
questa va ad allocare memoria per un nuovo posto ed inizializza il contenuto correttamente; poi vai a fare
Codice:
v[fila][posto] = *seat;
cioe' assegni il contenuto dei campi al record allocato precedentemente.
Cosa succede a seat? Sembra proprio che venga perso, vale a dire stai perdendo memoria.
Non credo che questo sia il tuo problema, ma prima di tutto lo sistemerei, visto che il leakage e' in un ciclo e quindi vai a perdere piu' record.
Per quanto riguarda il problema della stampa parziale: hai provato a mettere una printf() ad ogni esecuzione del ciclo?