Ich möchte einige Informationen sowie einige Metadaten in einem Byte-Array packen. Im folgenden habe ich 3 Bytes an Informationen, die am Anfang des Pakets am Ende einen bestimmten Offset plus 4 Bytes Metadaten hinzugefügt haben. Lösung 1 Ich kam auf, ist offensichtlich, zu tun, aber erfordert eine zweite tmp Variable, die ich nicht wirklich mag.Elegante Möglichkeit zum Hinzufügen von Metainformationen zu Char-Array
int size = 3;
int metadata = 4;
unsigned char * test = new unsigned char[size];
unsigned char * testComplete = new unsigned char[size+metadata];
test[offest1] = 'a';
test[offest2] = 'b';
test[offest3] = 'c';
set_first_4bytes(testComplete, val);
memcpy(&testComplete[metadata], test, size);
Eine weitere einfache Lösung wäre es die folgende Art und Weise zu tun:
unsigned char * testComplete = new unsigned char[size+metadata];
testComplete[offest1+metadata] = 'a';
testComplete[offest2+metadata] = 'b';
testComplete[offest3+metadata] = 'c';
set_first_4bytes(testComplete, val);
Allerdings Ich mag don nicht hier, um die Tatsache, dass jedes Mal, dass ich die Metadaten-Offset hinzuzufügen, so dass ich die bekommen rechter Index in meinem letzten Paket. Gibt es eine andere elegante Lösung, die nicht die Nachteile meiner Ansätze hat?
Danke!
Das sieht gut aus, vielen Dank! –