Originariamente inviato da oregon
Mah ... personalmente non credo che la NULL possa essere diversa da 0 in quanto e' il valore che e' stato scelto dai produttori di hardware come indirizzo non accessibile (per cui le CPU generano una exception).
Io ho sempre saputo che sui sistemi dotati di memoria virtuale le eccezioni di memoria dipendono da come il sistema operativo stabilisce che debba essere lo spazio di indirizzi virtuale del processo; nello specifico, Windows ad esempio stabilisce che i primi 64 KB di memoria sono inaccessibili, ed è per questo che qualunque tentativo di accedere a memoria tra 0x00000000 e 0x00010000 genera un'eccezione hardware di protezione della memoria. Se ben ricordo quanto ho studiato sul Tanenbaum, in generale il sistema operativo per definire una zona di memoria non accessibile deve semplicemente sollevare un'eccezione di memoria nel gestore dei page fault quando vede che l'indirizzo appartiene ad una zona protetta.