Originariamente inviato da Michele Facchin
Infatti non funziona perchè l'array deve contenere 13 e non 12 caratteri.

Comunque la risposta è che il C++ vede le stringhe come array di caratteri che terminano con il carattere '\0'.

Se non esiste quel carattere, allora la cout continua a scrivere spazzatura.

"ciao" contiene 5 caratteri perchè c'è anche il '\0', quindi la sintassi da usare è:

codice:
char s[5] = "ciao";
ma funziona anche char s[4]="ciao\0"
poiche' parte da s[0]
codice:
s[0,  1,  2,  3,  4  ]
 'c','i','a','o','\0' 
se non lo assegni lui non lo mette di default..
ma se lo assegni funziona perche il c ti permette di usare fino al
carattere s[4].