/Anonimizzato19645Utente anonimizzato27 mag 2016, 12:15Cosa significa una istruzione di questo tipo? E' l'istruzione in grassetto che non capisco, cosa significa usare l'asterisco in quel modo? Cosa viene assegnato a PIPPO? typedef struct { k; }S_pippo; S_pippo *ps_pippo_ele; #define PIPPO ps_pippo_ele; PIPPO = ( S_pippo *)0;
CcandaluarMolto attivoIscritto daago, 2013Messaggi190027 mag 2016, 12:22PIPPO è ps_pippo_ele, ovvero un puntatore ad una struttura di tipo S_pippo. Con PIPPO = ( S_pippo *)0; fai puntare PIPPO all'indirizzo 0.
/Anonimizzato19645Utente anonimizzato27 mag 2016, 12:27Indirizzo 0 relativo a cosa? l'indirizzo 0 assoluto in memoria? o relativo alla struttura?
OoregonSuper FamosoIscritto danov, 2011Messaggi2191727 mag 2016, 12:54In pratica è NULL (ti risparmio tutto un discorso su zero e NULL ...) ... è come se avesse scritto (ed era meglio scrivere) PIPPO = (S_pippo *) NULL;
/Anonimizzato19645Utente anonimizzato27 mag 2016, 13:55Ma cosa significa l'uso di (S_pippo*) dopo l'uguale? anzichè usare direttamente il valore? Perchè se al posto di 0 ci fosse stato un valore diverso, avrebbe fatto puntare a PIPPO l'indirizzo di memoria di una determinata struttura di tipo S_pippo?
OoregonSuper FamosoIscritto danov, 2011Messaggi2191727 mag 2016, 14:21Sai cosa è il casting? http://www.learncpp.com/cpp-tutorial/4-4a-explicit-type-conversion-casting/ Si tratta di convertire esplicitamente il tipo di un valore in un altro. In quel caso esplicitamente converti il valore 0 (che è un tipo intero) in un "puntatore al tipo S_pippo" che si scrive appunto (S_pippo *)