Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <climits>
  4. #include "Data.hpp"
  5.  
  6. void* serialize(void) {
  7. int tmp;
  8. char* str = new char[20];
  9. char const * array = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
  10.  
  11. for (int i = 0; i < 8; i++) {
  12. str[i] = array[rand() % 52];
  13. }
  14. tmp = rand() % INT_MAX;
  15. std::cout << "tmp : " << tmp << std::endl;
  16. *reinterpret_cast<int*>(str + 8) = tmp;
  17. for (int i = 12; i < 20; i++) {
  18. str[i] = array[rand() % 52];
  19. }
  20. std::cout << "str : " << str << std::endl;
  21. return reinterpret_cast<void*>(str);
  22. }
  23.  
  24. Data* deserialize(void * raw) {
  25. Data* data = new Data;
  26. char* str;
  27.  
  28. str = reinterpret_cast<char*>(raw);
  29. for (int i = 0; i < 8; i++) {
  30. data->s1 += str[i];
  31. }
  32. for (int i = 12; i < 20; i++) {
  33. data->s2 += str[i];
  34. }
  35. data->n = *reinterpret_cast<int*>(str + 8);
  36. return data;
  37. }
  38.  
  39. int main(void)
  40. {
  41. std::srand(time(0));
  42. void *array;
  43. Data* data;
  44. array = serialize();
  45. data = deserialize(array);
  46. std::cout << "data: " << data->s1 << std::endl;
  47. std::cout << "data: " << data->s2 << std::endl;
  48. std::cout << "data: " << data->n << std::endl;
  49. delete reinterpret_cast<char*>(array);
  50. return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement