fork download
  1. #include <iostream>
  2.  
  3. #include <cstdlib>
  4.  
  5. void* operator new(std::size_t count)
  6. {
  7. void *allocated = std::malloc(count);
  8. std::cout << __PRETTY_FUNCTION__ << " with count " << count << " : " << allocated << std::endl;
  9. return allocated;
  10. }
  11.  
  12. void operator delete(void* ptr) noexcept
  13. {
  14. std::cout << __PRETTY_FUNCTION__ << " with ptr " << ptr << std::endl;
  15. std::free(ptr);
  16. }
  17.  
  18. struct myclass
  19. {
  20. myclass() { std::cout << __PRETTY_FUNCTION__ << std::endl; }
  21. ~myclass() { std::cout << __PRETTY_FUNCTION__ << std::endl; }
  22.  
  23. short dummy;
  24. };
  25.  
  26. int main()
  27. {
  28. std::cout << "sizeof(size_t) : " << sizeof(std::size_t) << std::endl;
  29. std::cout << "sizeof(myclass) : " << sizeof(myclass) << std::endl;
  30. myclass *arr = new myclass[3];
  31. std::cout << "arr : " << arr << std::endl;
  32.  
  33. delete[] arr;
  34. }
  35.  
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
sizeof(size_t) : 4
sizeof(myclass) : 2
void* operator new(std::size_t) with count 10 : 0x9a2ca10
myclass::myclass()
myclass::myclass()
myclass::myclass()
arr : 0x9a2ca14
myclass::~myclass()
myclass::~myclass()
myclass::~myclass()
void operator delete(void*) with ptr 0x9a2ca10