Advertisement
karlicoss

placement new

Jun 23rd, 2011
446
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.58 KB | None | 0 0
  1.  
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. struct A
  7. {
  8.     A()
  9.     {
  10.         cout << "Constructor was called" << endl;
  11.     }
  12.     ~A()
  13.     {
  14.         cout << "Destructor was called" << endl;
  15.     }
  16. };
  17.  
  18. int main()
  19. {
  20.     char* p = new char[sizeof(A)];
  21.     A* a = new(p) A;
  22.     //утверждается( http://bit.ly/iMsK4n, в конце ), что надо делать так:
  23.     a->~A();
  24.     delete[] p;
  25.     //хотя, казалось бы, так должно быть нормально
  26.     delete a;//ведь это освободит память, на которую указывает p?
  27.     return 0;
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement