#include <iostream> #include <cstdint> #include <new> using namespace std; // Mode struct representing a firmware mode/level struct Mode { int level; }; int main() { int firstLevel, secondLevel; cin >> firstLevel >> secondLevel; // Properly aligned static buffer for one Mode object alignas(Mode) uint8_t buffer[sizeof(Mode)]; // Construct first Mode object in-place Mode* modePtr = new (buffer) Mode{firstLevel}; // Destroy first object modePtr->~Mode(); // Reconstruct Mode object with new level in same buffer modePtr = new (buffer) Mode{secondLevel}; // Print the updated mode level cout << modePtr->level; // Final destructor call modePtr->~Mode(); return 0; }
Test Cases
Test Results
Input
3 9
Expected Output
9