Ciao a tutti,
ho un problema di sintassi. Ho un puntatore ad un vector i cui elementi sono puntatori a stringhe. Devo conservarmi l'indirizzo del 2 elemento in un void *, se volessi accedere a quell'elemento dopo aver nuovamente fatto il cast come devo scrivere? Posto il codice:
std::vector<std::string*> *pop = new std::vector<std::string*>(4);
(*pop)[0]=new std::string("aaaa");
(*pop)[1]=new std::string("bbbb");
(*pop)[2]=new std::string("cccc");
(*pop)[3]=new std::string("dddd");
void * p = pop+2;
std::vector<std::string*> *tmp = (std::vector<std::string*> *)p;
//cosa scrivo per stampare "cccc" usando tmp ????
Grazie.
Problema sintassi C++
-
becherovka
- Prode Principiante
- Messaggi: 213
- Iscrizione: giovedì 7 dicembre 2006, 22:18
-
1001001
- Entusiasta Emergente

- Messaggi: 1506
- Iscrizione: mercoledì 22 dicembre 2010, 18:09
- Desktop: Unity
- Distribuzione: Ubuntu 14.04.1 LTS 64bit
- Località: Verona
Re: Problema sintassi C++
Ciao! Stai facendo un po' di confusione fra puntatori, vector e array del C 
Se pop è di tipo std::vector<std::string*>* , pop+2 non punta al terzo elemento del vector puntato da pop, ma all'eventuale terzo vector allocato nel C-style array dichiarato da pop. Mutatis mutandis, e con abuso di notazione e di scrittura che mi sembra però possa essere utile alla compresione, pop è uno string***.
Se pop è di tipo std::vector<std::string*>* , pop+2 non punta al terzo elemento del vector puntato da pop, ma all'eventuale terzo vector allocato nel C-style array dichiarato da pop. Mutatis mutandis, e con abuso di notazione e di scrittura che mi sembra però possa essere utile alla compresione, pop è uno string***.
"I find your lack of faith disturbing."
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti