fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cstdlib>
  4. #include <cstring>
  5.  
  6. void dump(void *s, size_t size) {
  7. unsigned char *buf = (unsigned char*)s;
  8. for (size_t i=0; i<size; ++i) {
  9. std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)buf[i] << " ";
  10. }
  11. std::cout << std::endl;
  12. }
  13.  
  14. struct Test {
  15. Test() : x(5) {
  16. std::cout << "In c'tor: ";
  17. dump(this, sizeof(*this));
  18. memset(this, 0, sizeof(*this));
  19. }
  20. virtual ~Test() {
  21. }
  22. int x;
  23. };
  24.  
  25.  
  26. int main() {
  27. Test *t = (Test*)calloc(1, sizeof(Test));
  28. std::cout << "Before construction: ";
  29. dump(t, sizeof(Test));
  30. new(t) Test;
  31. std::cout << "After construction: ";
  32. dump(t, sizeof(Test));
  33. return 0;
  34. }
Success #stdin #stdout 0.02s 2812KB
stdin
Standard input is empty
stdout
Before construction: 00 00 00 00 00 00 00 00 
In c'tor:            00 8d 04 08 05 00 00 00 
After construction:  00 00 00 00 00 00 00 00