Originariamente inviato da ciromosketta
sarebbe troppo chiederti di spiegarmi perchè? cioè, perchè va effettivamente a copiare la stringa nell'area indicata da /char se non ho disposto quanto spazio assegnargli?
credo che ciò sia collegato ad una cosa che non ho mai capito, che sarebbe: perchè in fase di dichiarazione posso fare:
codice:
char s[20] = "ciao"
e non posso fare invece
codice:
char s[20]; s = "ciao";
??
s come l'hai dichiarato è un array di caratteri (stringa).
Pertanto non puoi inizializzarlo con s = "ciao" perchè s messo così indica l'indirizzo da dove parte l'area di memoria.
In pratica andresti a modificare un'intera area che è costante.