Zugriff auf Rohvektordaten zur Verarbeitung in C
Diese Anfrage bezieht sich auf die Verwendung eines std::vector als char-Array für eine Funktion, die akzeptiert einen void-Zeiger als Argument:
void process_data(const void *data);
Frühere Versuche, Zeichenarrays als Argumente zu übergeben, waren erfolgreich. Die Notwendigkeit einer dynamischen Handhabung hat jedoch dazu geführt, dass die Verwendung von std::vector untersucht wurde.
Versuche, den Vektor direkt oder über seinen Start-Iterator zu übergeben, führten nicht zu den gewünschten Ergebnissen, was die Frage aufwirft, wie auf den zugegriffen werden soll Rohe Vektordaten zur Verarbeitung.
Lösung
Um die Daten des Vektors an die Funktion zu übergeben, ermitteln Sie die Adresse des Anfangselements mit einer der folgenden Methoden:
Beispiel:
// Assuming something is a std::vector<char> process_data(&something[0]);
Diese Methode gewährleistet Zugriff auf die rohen Vektordaten unabhängig vom Datenformat (Floats usw.).
Das obige ist der detaillierte Inhalt vonWie greife ich auf Rohvektordaten zur Verarbeitung in C zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!