Heim >Backend-Entwicklung >C++ >Wie rufe ich einen Rohdatenzeiger von einem std::vector ab?
Rohdatenzeiger von std::vector abrufen
Problem:
Sie möchten Verwenden Sie einen std::vector als char-Array innerhalb einer Funktion, die einen void-Zeiger akzeptiert. Versuche, den Vektor direkt oder über seinen begin()-Iterator zu übergeben, haben zu falschen Daten oder Compiler-Warnungen geführt.
Lösung:
Um auf die Rohdaten eines std zuzugreifen ::vector, erhalten Sie die Adresse seines Anfangselements mit einer der folgenden Methoden:
Ab C 11 ist eine zusätzliche Option verfügbar:
Beispiele:
void process_data(const void *data); std::vector<char> something; // Cast the raw data pointer to char* for compatibility. char *data_ptr = reinterpret_cast<char*>(something.data()); process_data(data_ptr);
Das obige ist der detaillierte Inhalt vonWie rufe ich einen Rohdatenzeiger von einem std::vector ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!