#include <iostream>
#include <new>
#include <cstddef>
using namespace std;
class Klasa
{
int i;
public:
Klasa(int ai)
: i(ai)
{
cout << i << ' ';
}
~Klasa()
{
cout << '~' << i << ' ';
}
};
int main()
{
const size_t len = 5;
Klasa *tablica = static_cast<Klasa*>(operator new[](sizeof(Klasa) * len));
for (size_t i = 0; i < len; i++)
new(&tablica[i]) Klasa(42);
// teraz zwalniamy:
for (int i = 0; i < len; i++)
tablica[i].~Klasa();
operator delete[](tablica);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bmV3PgojaW5jbHVkZSA8Y3N0ZGRlZj4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKY2xhc3MgS2xhc2EKewogICAgaW50IGk7CnB1YmxpYzoKICAgIEtsYXNhKGludCBhaSkKICAgICAgICA6IGkoYWkpCiAgICB7CiAgICAgICAgY291dCA8PCBpIDw8ICcgJzsKICAgIH0KICAgIH5LbGFzYSgpCiAgICB7CiAgICAgICAgY291dCA8PCAnficgPDwgaSA8PCAnICc7CiAgICB9Cn07CiAKaW50IG1haW4oKQp7CiAgICBjb25zdCBzaXplX3QgbGVuID0gNTsKIAogICAgS2xhc2EgKnRhYmxpY2EgPSBzdGF0aWNfY2FzdDxLbGFzYSo+KG9wZXJhdG9yIG5ld1tdKHNpemVvZihLbGFzYSkgKiBsZW4pKTsKICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuOyBpKyspCiAgICAgICAgbmV3KCZ0YWJsaWNhW2ldKSBLbGFzYSg0Mik7CiAKICAgIC8vIHRlcmF6IHp3YWxuaWFteToKIAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykKICAgICAgICB0YWJsaWNhW2ldLn5LbGFzYSgpOwogICAgICAgIAogICAgb3BlcmF0b3IgZGVsZXRlW10odGFibGljYSk7Cn0=