#include <stdio.h>
typedef struct {
unsigned int a ;
} deepest_t ;
typedef struct {
deepest_t* deepest_ptr ;
} deeper_t ;
typedef struct {
deeper_t* deeper_ptr ;
} deep_t ;
typedef struct {
void* data ;
} data_container_t ;
//-------------------------------
int main(void)
{
deepest_t deepest = {
.a = 5,
} ;
deeper_t deeper = {
.deepest_ptr = &deepest,
} ;
deep_t deep = {
.deeper_ptr = &deeper,
} ;
data_container_t data_container = {
.data = &(((deeper_t*) deep.deeper_ptr)->deepest_ptr),
} ;
//-------------------------------
deepest_t * d = *((deepest_t**)(data_container.data));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHN0cnVjdCB7CiAgdW5zaWduZWQgaW50IGEgOyAKfSBkZWVwZXN0X3QgOyAgCgp0eXBlZGVmIHN0cnVjdCB7CiAgZGVlcGVzdF90KiBkZWVwZXN0X3B0ciA7Cn0gZGVlcGVyX3QgOyAKCnR5cGVkZWYgc3RydWN0IHsKICBkZWVwZXJfdCogIGRlZXBlcl9wdHIgOwp9IGRlZXBfdCA7IAoKdHlwZWRlZiBzdHJ1Y3QgewogIHZvaWQqIGRhdGEgOwp9IGRhdGFfY29udGFpbmVyX3QgOyAKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaW50IG1haW4odm9pZCkKewogICAgZGVlcGVzdF90IGRlZXBlc3QgPSB7CiAgICAgIC5hID0gNSwgCiAgICB9IDsgCiAgICAKICAgIGRlZXBlcl90IGRlZXBlciA9IHsgCiAgICAgIC5kZWVwZXN0X3B0ciA9ICZkZWVwZXN0LCAKICAgIH0gOwogICAgCiAgICBkZWVwX3QgZGVlcCA9IHsgCiAgICAgIC5kZWVwZXJfcHRyID0gJmRlZXBlciwKICAgIH0gOwogICAgCiAgICBkYXRhX2NvbnRhaW5lcl90IGRhdGFfY29udGFpbmVyID0gewogICAgICAuZGF0YSA9ICYoKChkZWVwZXJfdCopIGRlZXAuZGVlcGVyX3B0ciktPmRlZXBlc3RfcHRyKSwKICAgIH0gOyAKICAgIAovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICBkZWVwZXN0X3QgKiBkID0gKigoZGVlcGVzdF90KiopKGRhdGFfY29udGFpbmVyLmRhdGEpKTsKICAgIAogICAgcHJpbnRmKCIgJXUgXG4iLCAoKmQpLmEpOwogICAgCglyZXR1cm4gMDsKfQo=