In realtà è proprio l'uguaglianza che non regge! E' un po' come se tu scrivessi
codice:int numero = "pippo";
Sono tipi di dato diversi, quindi l'assegnazione non può che portare problemi.
![]()
ciao il mio ragionamento è errato?
comunque adesso
funzionacodice:char **str="pippo"; printf("%s" , str);
e anche
funzionacodice:char *str="pippo"; char **str2; str2=&str; printf("%s",*str2);
quindi in definitiva char **str="pippo" è di per se un puntatore a stringa e non un puntatore a puntatore a stringa,
giusto?
Ma no ... stai facendo una gran confusione.
Se scrivi questo
char **str="pippo";
printf("%s", str);
un compilatore degno di questo nome dovrebbe darti un errore, come questo
Error 1 error C2440: 'initializing' : cannot convert from 'const char [6]' to 'char **'
o come questo
cannot convert `const char*' to `char**' in initialization
perché questa
char **str="pippo";
è sbagliata e non può essere compilata.
In ogni caso, cosa è che stai studiando ? Perché sei bloccato su questa faccenda ?
Ultima modifica di oregon; 05-05-2014 a 22:38
No MP tecnici (non rispondo nemmeno!), usa il forum.
ciao stavo usando il gcc ; ho qualche warning , ma compila : usando il printf in questo modo
mi fa stampare la stringacodice:char **str="pippo"; printf ("%s" , str);
stavo rivedendo un po di puntatori nel C : con la doppia indirezione ogni tanto faccio dei casini
ps quale compilatore usi tu ?
Ho usato gcc e visual C++ e comunque ho quegli errori. Quali warnings hai esattamente?
In ogni caso, anche se compila i warnings ti indicano che l'uso che fai di quel doppio puntatore non è corretto.
Il C ti permette di fare tante cose "fuori" dal normale (bastano un po' di cast) ma non è detto che siano corretti.
Ti consiglio di rivedere ancora i puntatori (in particolare la doppia indirezione) perché non li hai ancora compresi bene ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
Ecco ... più chiaro di così il compilatore non poteva essere ...
Dunque non devi assolutamente eseguire il programma prima di avere risolto quel problema.
No MP tecnici (non rispondo nemmeno!), usa il forum.