View Full Version : c, domandina veloce
cicoandcico
19-09-2003, 14:20
domandina veloce: se p è un puntatore e metto p =0 è come se metto p=NULL?
secondo me è diverso ma non mi da errori, specie di violazione della memoria.
Si', NULL e' una costante definita a 0
cicoandcico
19-09-2003, 15:10
ok, ma non è che NULL viene usato per i puntatori e 0 per le variabili? a me risulta che sia così.
E' una costante numerica, quando il tuo sorgente passa per il preprocessore la costante NULL viene sostituita in tutte le sue occorrenze da 0, quindi e' praticamente lo stesso...
Mettere NULL e' comunque piu' leggibile per un umano.
Il fatto che NULL sia uguale a 0 è un discorso dipendente dall'implementazione, pertanto quando ti devi riferire a NULL fallo tramite NULL e basta.
In genere NULL = (void *)0 ma come ti ripeto, è scorretto interpretarlo così.
In teoria dipende dall'implementazione, in pratica è sempre definita in 0, tanto che è pratica comune una cosa del tipo:
if(p)
per sapere se p è NULL oppure no.
Comunque usare NULL giova alla leggibilità e alla portabilità futura, se a qualche demente venisse in mente di definirlo, che so, 27! :D
Originariamente inviato da lovaz
In teoria dipende dall'implementazione, in pratica è sempre definita in 0, tanto che è pratica comune una cosa del tipo:
if(p)
per sapere se p è NULL oppure no.
Comunque usare NULL giova alla leggibilità e alla portabilità futura, se a qualche demente venisse in mente di definirlo, che so, 27! :D
Scusa cosa cambia da quello che ho detto io?:p
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.