PDA

View Full Version : [C]Domanda dichiarazione stringhe


darksun84x
19-06-2008, 10:39
Salve a tutti ,
Volevo chiedere che differenza c'e' tra la dichiarazione di questa stringa

char * stringa = "prova";

e queste altre due

char stringa[]="prova";

char stringa[10]="prova";

Grazie per l'attenzione

ilsensine
19-06-2008, 15:04
char * stringa = "prova";
Qui stringa è un puntatore, che viene "accidentalmente" inizializzato alla stinga costante "prova".
Nota che questa forma anche se accettata dai compilatori non è propriamente corretta; dovrebbe essere const char *stringa = "prova"


char stringa[]="prova";

Questa non è una dichiarazione di puntatore, ma di array.
Lo spazio per la stringa viene allocato sullo stack e inizializzato a "prova".
Anche se qui "stringa" è simile a un puntatore, non può essere modificato (prova stringa++ e otterrai un errore).


char stringa[10]="prova";

Come il caso precedente, ma vengono allocati esattamente 10 char (anche se "prova" ne richiede meno).