fork download
  1. #include <stdio.h>
  2.  
  3. typedef struct {
  4. unsigned int a ;
  5. } deepest_t ;
  6.  
  7. typedef struct {
  8. deepest_t* deepest_ptr ;
  9. } deeper_t ;
  10.  
  11. typedef struct {
  12. deeper_t* deeper_ptr ;
  13. } deep_t ;
  14.  
  15. typedef struct {
  16. void* data ;
  17. } data_container_t ;
  18.  
  19. //-------------------------------
  20.  
  21. int main(void)
  22. {
  23. deepest_t deepest = {
  24. .a = 5,
  25. } ;
  26.  
  27. deeper_t deeper = {
  28. .deepest_ptr = &deepest,
  29. } ;
  30.  
  31. deep_t deep = {
  32. .deeper_ptr = &deeper,
  33. } ;
  34.  
  35. data_container_t data_container = {
  36. .data = &(((deeper_t*) deep.deeper_ptr)->deepest_ptr),
  37. } ;
  38.  
  39. //-------------------------------
  40.  
  41. deepest_t * d = *((deepest_t**)(data_container.data));
  42.  
  43. printf(" %u \n", (*d).a);
  44.  
  45. return 0;
  46. }
  47.  
Success #stdin #stdout 0s 1832KB
stdin
Standard input is empty
stdout
 5