Ciao a tutti,
ho un problema con la serializzazione di una struttura dati.
Per realizzare la serializzazione trasformo una struttura in array di byte e la invio sulla rete con la funzione memcpy... Il problema secondo me è dovuto al fatto che voglio inviare un vettore... ma nn so come cambiare la cosa... c'è qualcuno che può darmi una mano??? Allego il codice
codice:#include <vector> #include <sstream> #include <iostream> #include <iomanip> using namespace std; #include "JNIStruct.h" typedef char * blockId; struct Block { float startX; float startY; std::set <int> controlledVehicles; }; struct Blocks{ std::vector <Block> cane; }; void prin(char * data){ Blocks c; memcpy(&c,data,sizeof(Blocks)); cout << " quello che "<< c.cane[0].startX<< " "<<c.cane[0].startY<< endl; cout << " quello che "<< c.cane[1].startX<< " "<<c.cane[1].startY<< endl; } char * getStruct (){ Block b; b.startX=32; b.startY=33; Block d; d.startX=99; d.startY=66; Blocks bb; bb.cane.push_back(b); bb.cane.push_back(d); char * oggetto= new char[sizeof(Blocks)]; memcpy(oggetto,&bb,sizeof(Blocks)); return oggetto; } int main ( ) { char* pinki=getStruct(); prin(pinki); system("pause"); return 0; }

Rispondi quotando