Ultima modifica:
Salve a tutti, ultimamente ero alle prese con un programma che prende in input un file di configurazione (File.ini), ed inserendo il nome del parametro ne restituisce il valore assegnato, come:
File.ini:
restituisce come valore una stringa contenete
esce così perchè la stringa viene copiata in un Array di Char e visualizando la memoria nel momento dell`inizializzazione dell`Arry assomiglia a qualcosa come:
e quando copia la stringa ("abc") nell`Array di Char diventa:
Avevo rimediato a questo errore usando la funzione:
(Ripulendolo prima che la stringa venisse copiata)
Ma tutt`ora mi chiedo, Perchè quando l`Array viene inizializato è del tutto composto da
PS: l`Array l`ho inizializato così
File.ini:
parametro1: 123
parametro2: abc
...
C++:
string GetParametreValue("parametro2");
"abc╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠"
.esce così perchè la stringa viene copiata in un Array di Char e visualizando la memoria nel momento dell`inizializzazione dell`Arry assomiglia a qualcosa come:
CC CC CC CC
╠╠╠╠CC CC CC CC
╠╠╠╠CC CC CC CC
╠╠╠╠CC CC CC CC
╠╠╠╠...
e quando copia la stringa ("abc") nell`Array di Char diventa:
97 98 99 CC
abc╠CC CC CC CC
╠╠╠╠CC CC CC CC
╠╠╠╠CC CC CC CC
╠╠╠╠...
Avevo rimediato a questo errore usando la funzione:
C++:
ZeroMemory();
Ma tutt`ora mi chiedo, Perchè quando l`Array viene inizializato è del tutto composto da
CC
e non da sequenze di escape come \0
? e poi, esistono modi per "ripulirlo" senza usare la funzione sopra citata?PS: l`Array l`ho inizializato così
C++:
char Array[255];