35. Placement New

Question.4

A developer sizes the buffer for a base class but constructs a derived class:

class Base { int x; };
class Derived : public Base { int y; float z; };

alignas(Derived) uint8_t buf[sizeof(Base)];  // Only 4 bytes!
Derived* d = new (buf) Derived();  // Needs 12 bytes!

What happens?

Need Help? Refer to the Quick Guide below

Select Answer

Restart quiz!