Ich versuche, std::vector
als char
Array zu verwenden.
Meine Funktion nimmt einen leeren Zeiger auf:
void process_data(const void *data);
Bevor ich einfach diesen Code verwendet habe:
char something[] = "my data here";
process_data(something);
Welches hat wie erwartet funktioniert.
Aber jetzt brauche ich die Dynamik von std::vector
, also habe ich stattdessen diesen Code ausprobiert:
vector<char> something;
*cut*
process_data(something);
Die Frage ist, wie ich den Zeichenvektor an meine Funktion übergebe, damit ich auf die Vektorrohdaten zugreifen kann (egal welches Format es ist - Floats usw.).
Ich habe es versucht:
process_data(&something);
Und das:
process_data(&something.begin());
Aber es gab einen Zeiger auf Kauderwelschdaten zurück, und dieser warnte : warning C4238: nonstandard extension used : class rvalue used as lvalue
.
vector<bool>
dies die Ausnahme von dieser Antwort ist (und keinen zusammenhängenden Speicher vonbool
s hat).