Memory address shows two different values.
We have const variable (a) and we put the address of the variable into two pointers (b and c). After changing the value at the address in one of the pointers (c), we had a situation where the same memory address has two different values. Is there any explanation for this behavior?
#include <iostream>
int main(void)
{
const int a = 99;
const int *b = &a;
int *c = (int *)b;
std::cout << &a << " - " << a << '\n';
std::cout << b << " - " << *b << '\n';
std::cout << c << " - " << *c << "\n\n";
*c = 61;
std::cout << &a << " - " << a << '\n';
std::cout << b << " - " << *b << '\n';
std::cout << c << " - " << *c << '\n';
return 0;
}
//here are the result(output)
003CFAA4 - 99 003CFAA4 - 99 003CFAA4 - 99
003CFAA4 - 99 003CFAA4 - 61 003CFAA4 - 61