#include <iostream>

int main() {
    int value{7};
    int* original{&value};
    void* address{original};
    int* restored{static_cast<int*>(address)};
    std::cout << "same-pointer=" << (restored == original)
              << " value=" << *restored << '\n';
    *restored = 9;
    std::cout << "original-value=" << value << '\n';
    if (restored != original || value != 9) {
        return 1;
    }
    return 0;
}
