#include <iostream>
#include <string>
#include <cstring>
using namespace std;
struct myobject {
int x;
double y;
std::string z;
};
void printUC(unsigned char* data, size_t len){
for (int i = 0; i < len; i++) {
printf("%x", data[i]);
}
printf("\n");
}
void printObj(const myobject& data){
std::cout << data.x << " " << data.y << " " << data.z << '\n';
}
int main() {
// your code goes here
myobject obj1 = {
42, 42.42, "hello"
};
unsigned char* bytes1 = new unsigned char[sizeof(obj1)];
memcpy(bytes1, static_cast<void *>(&obj1), sizeof(obj1));
myobject obj2 = {
42, 42.42, "hello"
};
unsigned char* bytes2 = new unsigned char[sizeof(obj2)];
memcpy(bytes2, static_cast<void*>(&obj2), sizeof(obj2));
printUC(bytes1, sizeof(obj1));
printUC(bytes2, sizeof(obj2));
std::cout << memcmp(bytes1, bytes2, sizeof(obj1)) << '\n';
auto tmp = myobject{};
/* memcpy(&tmp, bytes1, sizeof(obj1));
printObj(tmp);
memcpy(&tmp, bytes2, sizeof(obj2));
printObj(tmp);
*/
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y3N0cmluZz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgbXlvYmplY3QgewoJaW50IHg7Cglkb3VibGUgeTsKCXN0ZDo6c3RyaW5nIHo7Cn07Cgp2b2lkIHByaW50VUModW5zaWduZWQgY2hhciogZGF0YSwgc2l6ZV90IGxlbil7Cglmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CiAJCXByaW50ZigiJXgiLCBkYXRhW2ldKTsKCX0KCXByaW50ZigiXG4iKTsKfQoKdm9pZCBwcmludE9iaihjb25zdCBteW9iamVjdCYgZGF0YSl7CglzdGQ6OmNvdXQgPDwgZGF0YS54IDw8ICIgIiA8PCBkYXRhLnkgPDwgIiAiIDw8IGRhdGEueiA8PCAnXG4nOwp9CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCW15b2JqZWN0IG9iajEgPSB7CgkJNDIsIDQyLjQyLCAiaGVsbG8iIAoJfTsKCXVuc2lnbmVkIGNoYXIqIGJ5dGVzMSA9IG5ldyB1bnNpZ25lZCBjaGFyW3NpemVvZihvYmoxKV07CgltZW1jcHkoYnl0ZXMxLCBzdGF0aWNfY2FzdDx2b2lkICo+KCZvYmoxKSwgc2l6ZW9mKG9iajEpKTsKCW15b2JqZWN0IG9iajIgPSB7CgkJNDIsIDQyLjQyLCAiaGVsbG8iCgl9OwoJdW5zaWduZWQgY2hhciogYnl0ZXMyID0gbmV3IHVuc2lnbmVkIGNoYXJbc2l6ZW9mKG9iajIpXTsKCW1lbWNweShieXRlczIsIHN0YXRpY19jYXN0PHZvaWQqPigmb2JqMiksIHNpemVvZihvYmoyKSk7CgkKCXByaW50VUMoYnl0ZXMxLCBzaXplb2Yob2JqMSkpOwoJcHJpbnRVQyhieXRlczIsIHNpemVvZihvYmoyKSk7CgkJCglzdGQ6OmNvdXQgPDwgbWVtY21wKGJ5dGVzMSwgYnl0ZXMyLCBzaXplb2Yob2JqMSkpIDw8ICdcbic7CgkKCWF1dG8gdG1wID0gbXlvYmplY3R7fTsKLyoJbWVtY3B5KCZ0bXAsIGJ5dGVzMSwgc2l6ZW9mKG9iajEpKTsKCXByaW50T2JqKHRtcCk7CgltZW1jcHkoJnRtcCwgYnl0ZXMyLCBzaXplb2Yob2JqMikpOwoJcHJpbnRPYmoodG1wKTsKKi8JCglyZXR1cm4gMDsKfQo=