Pagina 1 di 1

Problema sintassi C++

Inviato: giovedì 1 maggio 2014, 10:26
da becherovka
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.

Re: Problema sintassi C++

Inviato: giovedì 1 maggio 2014, 15:08
da 1001001
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***.