QT: QByteArray auslesen und in allozierten Speicher schreiben

Atomara

Atomara

Debrandeter User
Hi@all

Ich bin im Praktikum und habe dort eine Aufgabe ,ich beschäftige mich dort mit C++ und Qt.

Eigendlich läuft soweit alles gut aber an einer Stelle haper ich....

Ich habe einen Objective-C Code bekommen und soll diesen nun auf C++/Qt portieren.

Da ich mein problem relativ schlecht beschreiben kann ,möchte ich das mit ein bischen Code demonstieren.


zunächst ... die Funktion bekommt ein QByteArray namens data.

dann wird ein void pointer erstellt ,dieser zeigt auf einen allozierten Speicher.

void* tmp = (void*) malloc(größe wird von anderer quelle aus angegeben);


über memmove(void_pointer,data.constData(),data.size());

Könnte ich nun das komplette bytearray in den speicher schreiben ,das problem ist allerdings dass ist nur ein bestimmter Bereich in den Speicher soll. zum Beispiel das 2te und 3te Byte.


Das ist schon sehr wichtig da der Voidpointer später zu einem Typ gecastet wird.

Ein QByteArray lässt sich übrigens wie ein normales Array benutzen ,das bringt mir allerdings nichts ,da sich der Voidpointer bewegen müsste damit ich nach einander die Bytes in den Speicher schreiben könnte.

Leider konnte ich dazu nichts im Internet finden, aber vielleicht kennt einer von euch eine Lösung.

Ich freue mich auf eure Antworten im Vorraus.
 
Pointer kann man doch gut bewegen:

PHP:
define BYTE unsigned char

void* mein_voidPtr;
...

BYTE* mein_bytePtr = (BYTE*) mein_voidPtr;

/* bytes 23-31 aus QByteArray in ab 42. byte im void* kopieren. */
memcpy( &(mein_bytePtr[41], &(data.constData()[22]), 31-23 )):
 
Oh ich habe hier schon einige Zeit nicht mehr reingesehen ,ja das ganze wurde mit einem Charpointer realisiert ,das Bytearray wurde komplett ausgelassen.
 

Ähnliche Themen

Speicherproblem?

Problem bei Installation von VLC Player und Super Karamba

Zurück
Oben