Ciao a tutti, vorrei un informazione, se dichiaro una variabile con 100 caratteri tramite vettore, ma uso solo 10 caratteri e in fine utilizzo \0, i seguenti 90 spazi di memoria riservati all array si cancellano?
Ciao a tutti, vorrei un informazione, se dichiaro una variabile con 100 caratteri tramite vettore, ma uso solo 10 caratteri e in fine utilizzo \0, i seguenti 90 spazi di memoria riservati all array si cancellano?
No.
Amaro C++, il gusto pieno dell'undefined behavior.
Ok quindi serve solo a dire alla array che non si inseriranno più caratteri
Il carattere NUL = '\0' serve per terminare una stringa di caratteri..Originariamente inviato da gennahouse
Ok quindi serve solo a dire alla array che non si inseriranno più caratteri
Es:La lunghezza di tale stringa (tenendo conto che il 1º indice (che sempre è = 0) contiene la 'S', il 3º contiene la 'o') sarà sempre = 4, perchè appunto il carattere NUL (che in questo caso viene automaticamente attribuito) sarà l'indice nº 4.codice:char name[10] = "Simo";
Es. di una strlen
Nel caso dell'array name, i (sizeof(name) - strlen(name)) bytes rimarranno sempre presenti in memoria... Io onestamente preferisco sempre la allocazione dinamica, e se riempi il tuo array all'interno di un ciclo for o while, è sempre bene appunto dare come ultimo valore della stringa il carattere '\0'.codice:int strlen(char string[]) { int i = 0; while(string[i] != '\0') i++; return i; }
Indica solo la fine della stringa...Originariamente inviato da gennahouse
Ok quindi serve solo a dire alla array che non si inseriranno più caratteri
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
Grazie, allora avevo capito bene...Originariamente inviato da Alex'87
Indica solo la fine della stringa...