Sto provando a usare std::vector
come un char
array.
La mia funzione assume un puntatore vuoto:
void process_data(const void *data);
Prima ho semplicemente usato questo codice:
char something[] = "my data here";
process_data(something);
Che ha funzionato come previsto.
Ma ora ho bisogno della dinamicità di std::vector
, quindi ho provato questo codice invece:
vector<char> something;
*cut*
process_data(something);
La domanda è: come faccio a passare il carattere char alla mia funzione in modo da poter accedere ai dati grezzi del vettore (indipendentemente dal formato: float, ecc.)?
Ho provato questo:
process_data(&something);
E questo:
process_data(&something.begin());
Ma è restituito un puntatore ai dati senza senso, e quest'ultimo ha dato avvertimento: warning C4238: nonstandard extension used : class rvalue used as lvalue
.
vector<bool>
quale è l'eccezione a questa risposta (e non ha una memoria contigua dibool
s).