Я пытаюсь использовать std::vector
в качестве char
массива.
Моя функция принимает пустой указатель:
void process_data(const void *data);
Прежде чем я просто использовал этот код:
char something[] = "my data here";
process_data(something);
Который работал как ожидалось.
Но теперь мне нужна динамичность std::vector
, поэтому я попробовал этот код вместо этого:
vector<char> something;
*cut*
process_data(something);
Вопрос в том, как передать вектор символов в мою функцию, чтобы я мог получить доступ к необработанным данным вектора (независимо от того, какой это формат - плавающие и т. Д.)?
Я попробовал это:
process_data(&something);
И это:
process_data(&something.begin());
Но он вернулся указатель на тарабарщину данных, а второй дал предупреждение: warning C4238: nonstandard extension used : class rvalue used as lvalue
.
vector<bool>
который является исключением из этого ответа (и не имеет непрерывного хранения в памятиbool
s).