I have two different application. I have to send information from one app to another. In one application there is encoding in class object and in another application it is decoded in structure object with same data types.
Is it correct implementation to copy class object to structure who have same data types? or should i have to change in one of encoding/decoding part?
I tried it, it seems correct memcpy but i don't understand that it is correct or not..
For example...
#include <iostream>
#include <cstring>
class capn{
public:
unsigned short int apn[8];
unsigned short int a;
};
class creq{
public:
capn a1;
capn a2;
unsigned short int t;
capn a3;
};
class cy{
public:
capn a1;
capn a2;
unsigned short int aaa[34];
capn a3;
unsigned short int bbb[12];
};
class cx{
public:
cx(){
a=0;
b=0;
c=0;
memset(d,0,8);
}
unsigned int a;
unsigned int b;
unsigned int c;
union {
creq requ;
cy pasd;
};
unsigned short int d[8];
};
struct apn{
unsigned short int apn[8];
unsigned short int a;
};
struct req{
struct apn a1;
struct apn a2;
unsigned short int t;
struct apn a3;
};
struct y{
struct apn a1;
struct apn a2;
unsigned short int aaa[34];
struct apn a3;
unsigned short int bbb[12];
};
struct x{
unsigned int a;
unsigned int b;
unsigned int c;
union {
struct req requ;
struct y pasd;
};
unsigned short int d[8];
};
int main()
{
struct x ox;
ox.a=1;
ox.b=2;
ox.c=3;
ox.d[0]=4;
ox.requ.a1.a=5;
ox.requ.t=6;
cx obj;
std::cout<<sizeof(ox)<<std::endl;
std::cout<<sizeof(obj)<<std::endl;
memcpy(&obj,&ox,sizeof(ox));
std::cout<<obj.a<<" " <<obj.b<< " " <<obj.c<< " "<<obj.d[0]<< " " <<obj.requ.a1.a<<" "<<obj.requ.t<<std::endl;
return 0;
}