Hallo,
Ich habe aus einer Datei zwei Strukturen STest im Binärformat eingelesen und in den Void-Zeiger pFileData gespeichert.
Nun möchte ich beide folgendermaßen aus dem void-Zeiger "auslesen":
Allerdings wird hierbei sTest2FromFile2 nicht mehr richtig angezeigt.
Das Problem liegt denke ich beim Verschieben des Zeigers um sizeof (STest) Bytes.
Ich muss also die Adresse der Daten an Position Zeiger + xBytes richtig angeben, damit memcpy von dort aus die Daten beziehen kann.
Hat jemand eine Idee, wie ich das Anstelle?
Mfg, Jacal
Ich habe aus einer Datei zwei Strukturen STest im Binärformat eingelesen und in den Void-Zeiger pFileData gespeichert.
Nun möchte ich beide folgendermaßen aus dem void-Zeiger "auslesen":
C++:
struct STest
{
int i1;
int i2;
};
int main ()
{
void *pFileData;
// ...
STest sTestFromFile1;
STest sTestFromFile2;
// Im Void-Zeiger pFileData befinden sich zwei STest-Strukturen.
// Diese sollen nach sTest1 und sTest2 kopiert werden.
// Die erste Struktur befindet sich an der Anfangsposition des Zeigers.
memcpy (&sTestFromFile1, pFileData, sizeof (STest));
cout << "sTestFromFile1:\t" << sTestFromFile1.i1 << " " << sTestFromFile1.i2 << endl;
// Die zweite Struktur beginnt an Stelle pFileData + sizeof (STest)
memcpy (&sTestFromFile2, (&pFileData + sizeof (STest)), sizeof (STest));
cout << "sTestFromFile2:\t" << sTestFromFile2.i1 << " " << sTestFromFile2.i2 << endl;
};
Allerdings wird hierbei sTest2FromFile2 nicht mehr richtig angezeigt.
Das Problem liegt denke ich beim Verschieben des Zeigers um sizeof (STest) Bytes.
Ich muss also die Adresse der Daten an Position Zeiger + xBytes richtig angeben, damit memcpy von dort aus die Daten beziehen kann.
Hat jemand eine Idee, wie ich das Anstelle?
Mfg, Jacal