Type Punning, part 3
#include <iostream>
struct Vector1
{
int a, b;
};
struct Vector2
{
int a, b, c, d;
Vector1* getVector1() {
// Return address of first element as Vector1
return (Vector1*) &a;
}
};
void printVector1(Vector1& vec1) {
std::cout << vec1.a << ", " << vec1.b << std::endl;
}
int main(int argc, char const *argv[])
{
Vector2 v2 = {1,2,3,4};
Vector1* v1 = v2.getVector1();
printVector1(v1[0]);
printVector1(v1[1]);
return 0;
}Last updated