Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <climits>
- #include "Data.hpp"
- void* serialize(void) {
- int tmp;
- char* str = new char[20];
- char const * array = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
- for (int i = 0; i < 8; i++) {
- str[i] = array[rand() % 52];
- }
- tmp = rand() % INT_MAX;
- std::cout << "tmp : " << tmp << std::endl;
- *reinterpret_cast<int*>(str + 8) = tmp;
- for (int i = 12; i < 20; i++) {
- str[i] = array[rand() % 52];
- }
- std::cout << "str : " << str << std::endl;
- return reinterpret_cast<void*>(str);
- }
- Data* deserialize(void * raw) {
- Data* data = new Data;
- char* str;
- str = reinterpret_cast<char*>(raw);
- for (int i = 0; i < 8; i++) {
- data->s1 += str[i];
- }
- for (int i = 12; i < 20; i++) {
- data->s2 += str[i];
- }
- data->n = *reinterpret_cast<int*>(str + 8);
- return data;
- }
- int main(void)
- {
- std::srand(time(0));
- void *array;
- Data* data;
- array = serialize();
- data = deserialize(array);
- std::cout << "data: " << data->s1 << std::endl;
- std::cout << "data: " << data->s2 << std::endl;
- std::cout << "data: " << data->n << std::endl;
- delete reinterpret_cast<char*>(array);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement