Oppure

Loading
24/05/08 23:28
NicobhC
:ot: scusate se ho postato qua ma non sapevo dove pubblicare il quesito, non trovando una sezione apposita.
Comunque...qualcuno mi può spiegare cosa significhi che un puntatore punti a NULL?
Grazie :D
aaa
25/05/08 7:04
gantonio
Attenzione ... i casi sono due e sono distinti

1) un puntatore "punta" a NULL quando il puntatore e' valido e punta ad un valore in memoria che e' lo zero binario ...

2) un puntatore "vale" NULL quando non e' un puntatore valido ...

Non so quale dei due casi stai trattando ...
aaa
25/05/08 8:49
Bond93
in genere vale il 2 caso cioè un puntatore è uguale a NULL se è un puntatore non valido per esempio risultano NULL i puntatori ritornati dalle funzioi di allocazione (malloc, calloc..) fallite oppure quelli di apertura file fallita...
se dici qual'è il tuo problema in particolare magari ti possiamo aiutare meglio...
aaa
25/05/08 9:56
NicobhC
il problema era semplicemente capire cosa sia la costante NULL e cosa significasse che il puntatore punti a quest'ultima ed è ok.
ora che ci sono però, cosa intendete per zero binario?
aaa
25/05/08 11:21
gantonio
Per un computer, come saprai, tutto e' numerico ...

La costante NULL equivale ad un numero, lo 0 binario ...

Pero' non ho capito bene il tuo problema ... non comprendi questa scrittura

char *p = NULL;

o quest'altra

char c = NULL;
char *p = &c;

... sono diverse ...

Ultima modifica effettuata da gantonio 25/05/08 11:24
aaa
25/05/08 15:36
NicobhC
Postato originariamente da gantonio:

Per un computer, come saprai, tutto e' numerico ...

La costante NULL equivale ad un numero, lo 0 binario ...

Pero' non ho capito bene il tuo problema ... non comprendi questa scrittura

char *p = NULL;

o quest'altra

char c = NULL;
char *p = &c;

... sono diverse ...


questa: char *p=NULL
aaa
25/05/08 15:47
gantonio
Quindi un "puntatore NULL" ...

Un puntatore contiene l'indirizzo di un dato.

Visto che l'indirizzo 0, per convenzione, e' vietato, ad un puntatore viene assegnato il valore 0 (che e' uguale alla costante NULL) in modo da indicare che NON e' un puntatore valido in quel momento.

In seguito, gli si assegnera' un valore (un indirizzo) che, per essere valido, DOVRA' essere diverso da zero e DOVRA' essere un indirizzo allocato nello spazio degli indirizzi del processo.
aaa
25/05/08 16:02
NicobhC
Postato originariamente da gantonio:

Quindi un "puntatore NULL" ...

Un puntatore contiene l'indirizzo di un dato.

Visto che l'indirizzo 0, per convenzione, e' vietato, ad un puntatore viene assegnato il valore 0 (che e' uguale alla costante NULL) in modo da indicare che NON e' un puntatore valido in quel momento.

In seguito, gli si assegnera' un valore (un indirizzo) che, per essere valido, DOVRA' essere diverso da zero e DOVRA' essere un indirizzo allocato nello spazio degli indirizzi del processo.

e che non ne capisco l'utilità...tanto vale che non gli venga assegnato nessun valore o no? (ovviamente no, ma perchè?)
aaa