Problema sintassi C++

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
becherovka
Prode Principiante
Messaggi: 213
Iscrizione: giovedì 7 dicembre 2006, 22:18

Problema sintassi C++

Messaggio 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.
1001001
Entusiasta Emergente
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++

Messaggio 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***.
"I find your lack of faith disturbing."
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 6 ospiti