Disproving Determinism via c++

Viewed 43

friends.

Recently I experimented a bit a C++ constants.

The code is:

#include <iostream>

int main() {
    const int c = 1;
    const int* ptr = &c;
    int* tmp = const_cast<int*>(ptr);
    *tmp = 5;
    std::cout << &c << " " << ptr << " " << tmp << "\n"; 
    std::cout << c << " " << *ptr << " " << *tmp;
}

I have investigated assembly code at godbolt: https://godbolt.org/z/7e3o7bWrs

The assembly code seems like doing what I wrote, exactly moving address of c into tmp variable and changes variable at this address.

Can you please tell me, why there is could be two different values at the same addresses?

Thank you.

0 Answers
Related