#include <iostream>
#include <iomanip>
using namespace std;
class A {
public:
int v;
A() {
std::cout << "запуск конструктора ... " << std::endl;
v = 10; //0xA
}
};
int main() {
// без вызова конструктора -------------------------------
char *a = (char*)malloc(1024);
A *x = (A*)a;
*a++ = 255; // 0xFF
*a = 128; // 0x80
std::cout << "x->v: " << std::setbase(16) << x->v << std::endl;
free(--a);
// с вызовом конструктора --------------------------------
A *y = new A();
std::cout << "y->v: " << y->v << std::endl;
delete x;
// -------------------------------------------------------
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBBIHsKCXB1YmxpYzoKCSAgIGludCB2OwoJICAgQSgpIHsKCSAgICAgc3RkOjpjb3V0IDw8ICLQt9Cw0L/Rg9GB0Log0LrQvtC90YHRgtGA0YPQutGC0L7RgNCwIC4uLiAiIDw8IHN0ZDo6ZW5kbDsKCSAgICAgdiA9IDEwOyAvLzB4QQoJICAgfQp9OwoKaW50IG1haW4oKSB7CgkvLyDQsdC10Lcg0LLRi9C30L7QstCwINC60L7QvdGB0YLRgNGD0LrRgtC+0YDQsCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgljaGFyICphID0gKGNoYXIqKW1hbGxvYygxMDI0KTsKCUEgKnggPSAoQSopYTsKCSphKysgPSAyNTU7IC8vIDB4RkYKCSphICAgPSAxMjg7IC8vIDB4ODAKCXN0ZDo6Y291dCA8PCAieC0+djogIiA8PCBzdGQ6OnNldGJhc2UoMTYpIDw8IHgtPnYgPDwgc3RkOjplbmRsOyAKCWZyZWUoLS1hKTsKCS8vINGBINCy0YvQt9C+0LLQvtC8INC60L7QvdGB0YLRgNGD0LrRgtC+0YDQsCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJQSAqeSA9IG5ldyBBKCk7CglzdGQ6OmNvdXQgPDwgInktPnY6ICIgPDwgeS0+diA8PCBzdGQ6OmVuZGw7CglkZWxldGUgeDsKCS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCXJldHVybiAwOwp9