Y
yusufm
Hi,
For the following program:
char* ptr;
int a = 65;
ptr =(char*) &a;
cout << "ptr: " << (unsigned int) ptr << "\n";
cout << "*ptr: " << *ptr << "\n";
cout << "a " << a << "\n";
*ptr = 66;
cout << "ptr: " << (unsigned int) ptr << "\n";
cout << "*ptr: " << *ptr << "\n";
cout << "a " << a << "\n";
*ptr++;
*ptr = 67;
cout << "ptr: " << (unsigned int) ptr << "\n";
cout << "*ptr: " << *ptr << "\n";
cout << "a " << a << "\n";
I get the following output:
ptr: 3221202256
*ptr: A
a 65
ptr: 3221202256
*ptr: B
a 66
ptr: 3221202257
*ptr: C
a 17218
I wanted to know, why does the value of a = 17218? Should it not be 67?
Thanks.
For the following program:
char* ptr;
int a = 65;
ptr =(char*) &a;
cout << "ptr: " << (unsigned int) ptr << "\n";
cout << "*ptr: " << *ptr << "\n";
cout << "a " << a << "\n";
*ptr = 66;
cout << "ptr: " << (unsigned int) ptr << "\n";
cout << "*ptr: " << *ptr << "\n";
cout << "a " << a << "\n";
*ptr++;
*ptr = 67;
cout << "ptr: " << (unsigned int) ptr << "\n";
cout << "*ptr: " << *ptr << "\n";
cout << "a " << a << "\n";
I get the following output:
ptr: 3221202256
*ptr: A
a 65
ptr: 3221202256
*ptr: B
a 66
ptr: 3221202257
*ptr: C
a 17218
I wanted to know, why does the value of a = 17218? Should it not be 67?
Thanks.