#include <iostream>
using namespace std;
struct ivec3
{
int x, y, z;
ivec3( int x, int y, int z) : x( x) , y( y) , z( z) { }
} ;
ostream& operator << ( ostream& stream, const ivec3& v)
{
return stream << "(" << v.x << ", " << v.y << ", " << v.z << ")" ;
}
int main( ) {
ivec3 v( 11 , 22 , 33 ) ;
cout << "Изначальный вектор: " << v << endl;
cout << endl;
cout << "Размер int в байтах: " << sizeof ( int ) << endl;
cout << "Адрес v: " << reinterpret_cast < uintptr_t > ( & v) << endl;
cout << "Адрес v.y: " << reinterpret_cast < uintptr_t > ( & v.y ) << endl;
cout << "Адрес v.z: " << reinterpret_cast < uintptr_t > ( & v.z ) << endl;
cout << endl;
cout << "Изменение v.y на 55 по вычисленному адресу..." << endl;
* reinterpret_cast < int * > ( reinterpret_cast < uintptr_t > ( & v) + sizeof ( int ) ) = 55 ;
cout << "Новый вектор: " << v << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGl2ZWMzCnsKCWludCB4LCB5LCB6OwoJaXZlYzMoaW50IHgsIGludCB5LCBpbnQgeikgOiB4KHgpLCB5KHkpLCB6KHopIHsgfQp9OwoKb3N0cmVhbSYgb3BlcmF0b3IgPDwob3N0cmVhbSYgc3RyZWFtLCBjb25zdCBpdmVjMyYgdikKewoJcmV0dXJuIHN0cmVhbSA8PCAiKCIgPDwgdi54IDw8ICIsICIgPDwgdi55IDw8ICIsICIgPDwgdi56IDw8ICIpIjsKfQoKaW50IG1haW4oKSB7CglpdmVjMyB2KDExLCAyMiwgMzMpOwoJY291dCA8PCAi0JjQt9C90LDRh9Cw0LvRjNC90YvQuSDQstC10LrRgtC+0YA6ICIgPDwgdiA8PCBlbmRsOwoJY291dCA8PCBlbmRsOwoKCWNvdXQgPDwgItCg0LDQt9C80LXRgCBpbnQg0LIg0LHQsNC50YLQsNGFOiAiIDw8IHNpemVvZihpbnQpIDw8IGVuZGw7Cgljb3V0IDw8ICLQkNC00YDQtdGBIHY6ICIgPDwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KCZ2KSA8PCBlbmRsOwoJY291dCA8PCAi0JDQtNGA0LXRgSB2Lnk6ICIgPDwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KCZ2LnkpIDw8IGVuZGw7Cgljb3V0IDw8ICLQkNC00YDQtdGBIHYuejogIiA8PCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oJnYueikgPDwgZW5kbDsKCWNvdXQgPDwgZW5kbDsKCgljb3V0IDw8ICLQmNC30LzQtdC90LXQvdC40LUgdi55INC90LAgNTUg0L/QviDQstGL0YfQuNGB0LvQtdC90L3QvtC80YMg0LDQtNGA0LXRgdGDLi4uIiA8PCBlbmRsOwoJKnJlaW50ZXJwcmV0X2Nhc3Q8aW50Kj4ocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KCZ2KSArIHNpemVvZihpbnQpKSA9IDU1OwoJY291dCA8PCAi0J3QvtCy0YvQuSDQstC10LrRgtC+0YA6ICIgPDwgdiA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0=