Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C] Domanda su array stringhe

    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?

  2. #2
    No.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Ok quindi serve solo a dire alla array che non si inseriranno più caratteri

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    466
    Originariamente inviato da gennahouse
    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..
    Es:
    codice:
    char name[10] = "Simo";
    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.
    Es. di una strlen
    codice:
    int strlen(char string[])
    {
    	int i = 0;
    
    	while(string[i] != '\0')
    		i++;
    		
    	return i;
    }
    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'.

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da gennahouse
    Ok quindi serve solo a dire alla array che non si inseriranno più caratteri
    Indica solo la fine della stringa...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Originariamente inviato da Alex'87
    Indica solo la fine della stringa...
    Grazie, allora avevo capito bene...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.