#include <iostream> #include <new> // placement new using namespace std; // Define struct Mode struct Mode { int level; }; int main() { int firstLevel, secondLevel; cin >> firstLevel >> secondLevel; // Statically allocated, properly aligned buffer alignas(Mode) unsigned char buffer[sizeof(Mode)]; // Construct first Mode object Mode* mode = new (buffer) Mode{firstLevel}; // Manually call destructor mode->~Mode(); // Reconstruct second Mode object in the same buffer mode = new (buffer) Mode{secondLevel}; // Print final mode level cout << mode->level; // Manually call destructor mode->~Mode(); return 0; }
Test Cases
Test Results
Input
3 9
Expected Output
9