Ayako
08-05-2007, 15:13
Buongiorno a tutti,
sto usando la struttura map del C++ del tipo
map<char*,int>mapPippo
il char che farebbe da chiave viene letto da un file esterno e messo in un char chiamato pippo.
Ora siccome di chiavi sul file ce ne è più di una, ma a priori non so quante saranno, il caricamento della mappa è dentro un while del tipo
char pippo[4];
while(!f1.eof()){
for(int i=1;i<4;i++){
pippo[i]=f1.get();
}
mapPippo[pippo] = index++;
}
Il punto è che per essere una chiave di una mappa, la memoria dedicata a pippo deve essere nuova tutte le volte, perchè così com'è, passandogli un puntatore, scrivo nella stessa zona e ottengo solo l'ultimo elemento all'interno della mappa. Come posso fare. Spero di essere stata chiara.
Grazie Ayako
sto usando la struttura map del C++ del tipo
map<char*,int>mapPippo
il char che farebbe da chiave viene letto da un file esterno e messo in un char chiamato pippo.
Ora siccome di chiavi sul file ce ne è più di una, ma a priori non so quante saranno, il caricamento della mappa è dentro un while del tipo
char pippo[4];
while(!f1.eof()){
for(int i=1;i<4;i++){
pippo[i]=f1.get();
}
mapPippo[pippo] = index++;
}
Il punto è che per essere una chiave di una mappa, la memoria dedicata a pippo deve essere nuova tutte le volte, perchè così com'è, passandogli un puntatore, scrivo nella stessa zona e ottengo solo l'ultimo elemento all'interno della mappa. Come posso fare. Spero di essere stata chiara.
Grazie Ayako