--- Enrico Maria Giordano <e.m.giordano@xxxxxxxxxxxxxxx> wrote: > > > Roberto Montaruli wrote: > > > > Ah, si? Prova a non inizializzare un puntatore di funzione > > Puntatore *a* funzione (pointer-to). > > > e poi chiamare proprio quella funzione li'... > > > > Sai che succede? Che se ne salta all'indirizzo zero ed esegue... > > reset! :-( > > Dipende dalla classe di allocazione del puntatore. Un puntatore allocato > automaticamente non viene inizializzato e quindi l'indirizzo a cui punta > è praticamente casuale. In questo caso, chiamarne la funzione puntata > potrebbe eseguire qualsiasi cosa, anche la formattazione dell'hard disk > :-), a meno che non ci siano dei meccanismi di protezione attivi... Vero. Pero' nei sistemi in cui viene generato il (Null pointer assignment) il puntatore e' proprio Null (o comunque inizializzato con un valore di default che fa scatenare l'errore... Altrimenti in un ambiente unix standard, con un compilatore che attribuisce ad un puntatore non assegnato, qualsiasi cosa, potrebbe analogamente succedere di tutto, compresa la formattazione del disco. Questo vuol dire che al di la' del fatto che il C dica che il puntatore non inizializzato puo' contenere di tutto, di fatto i compilatori mettono un valore di default, tale per cui il sistema operativo che c'e' sotto si comporti di conseguenza. O no? ===== // // In a world without walls and fences // you would not need windows and gates. // (Confucio) == P'n'P: http://maicrosoft.italiamac.com __________________________________ Do you Yahoo!? Take Yahoo! Mail with you! Get it on your mobile phone. http://mobile.yahoo.com/maildemo