Como obter o ponteiro std :: vector para os dados brutos?

Estou tentando usarstd::vector como umchar array.

função @My recebe um ponteiro nulo:

void process_data(const void *data);

Antes de eu simplesmente usar esse código:

char something[] = "my data here";
process_data(something);

Que funcionou como esperado.

Mas agora eu preciso da dinâmica destd::vector, então tentei esse código:

vector<char> something;
*cut*
process_data(something);

A questão é: como passo o vetor char para a minha função para que eu possa acessar os dados brutos do vetor (não importa qual o formato - floats, etc.

Tentei o seguinte:

process_data(&something);

E isto

process_data(&something.begin());

Mas retornou um ponteiro para dados sem sentido, e o último deu um aviso:warning C4238: nonstandard extension used : class rvalue used as lvalue.

questionAnswers(3)

yourAnswerToTheQuestion