Ci ho pensato un po', però, in effetti, mi sembra un problema analogo a quello legato alle funzioni ricorsive: se non ci sono delle condizioni di terminazione, come faccio a non andare in loop?
Bene, se dichiaro una struttura ricorsiva, cioè che contiene un puntatore a se stessa, non ho problemi di questo tipo, in quanto i puntatori hanno dimensione nota (32 o 64 bit a seconda dell'archiettura), per cui il compilatore sa quanto dovrà allocare ad una variabile del tuo tipo; mettiamo invece il caso di dichiarare una struttura ricorsiva come nel tuo caso, come fa il compilatore a sapere quanto è grande? Il compilatore sa che quando dichiari una variabile della tuo tipo deve allocare memoria per due int e poi ... per altri due int ... per altri due int ... all'inifinito.
Spero di esserti stato d'aiuto.
Se non ho risposto correttamente, correggetemi che sono pure io qui per imparare :-)

Rispondi quotando