[zxspectrum] Re: Linux per ZX

  • From: Roberto Montaruli <rmontaruli@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Tue, 28 Sep 2004 06:37:54 -0700 (PDT)

--- 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 

Other related posts: