Guest User

Untitled

a guest
Oct 19th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <string.h>
  3.  
  4. typedef struct {
  5. uint16_t var1;
  6. uint16_t var2;
  7. } bar_t ;
  8.  
  9. typedef struct {
  10. bar_t (* bar)[3];
  11. uint8_t spare;
  12. } foo_t;
  13.  
  14. typedef struct {
  15. bar_t bar[3];
  16. } spam_t;
  17.  
  18.  
  19. void printVar(foo_t foo, spam_t * spam)
  20. {
  21. printf("foo.bar[0]->var1: %dn", foo.bar[0]->var1);
  22. printf("foo.bar[1]->var1: %dn", foo.bar[1]->var1);
  23. printf("foo.bar[2]->var1: %dn", foo.bar[2]->var1);
  24.  
  25. printf("spam->bar[0].var1: %dn", spam->bar[0].var1);
  26. printf("spam->bar[1].var1: %dn", spam->bar[1].var1);
  27. printf("spam->bar[2].var1: %dnn", spam->bar[2].var1);
  28.  
  29. printf("foo.bar[0]->var2: %dn", foo.bar[0]->var2);
  30. printf("foo.bar[1]->var2: %dn", foo.bar[1]->var2);
  31. printf("foo.bar[2]->var2: %dn", foo.bar[2]->var2);
  32.  
  33. printf("spam->bar[0].var2: %dn", spam->bar[0].var2);
  34. printf("spam->bar[1].var2: %dn", spam->bar[1].var2);
  35. printf("spam->bar[2].var2: %dnn", spam->bar[2].var2);
  36. }
  37.  
  38. int main(int argc, char * argv[])
  39. {
  40. printf("Start...n");
  41.  
  42. foo_t foo;
  43. spam_t * spam = (spam_t *)malloc(sizeof(spam_t));
  44.  
  45. memset(&foo, 0, sizeof(foo_t));
  46. memset(spam, 0, sizeof(spam_t));
  47.  
  48. foo.bar = &(spam->bar);
  49.  
  50. printVar(foo, spam);
  51.  
  52. spam->bar[0].var1 = 1;
  53. spam->bar[1].var1 = 1;
  54. spam->bar[2].var1 = 0;
  55.  
  56. spam->bar[0].var2 = 2;
  57. spam->bar[1].var2 = 1;
  58. spam->bar[2].var2 = 0;
  59.  
  60. //foo.bar[2]->var2 = 3;
  61.  
  62. printVar(foo, spam);
  63.  
  64. free(spam);
  65.  
  66. printf("Done...n");
  67.  
  68. return 0;
  69. }
Add Comment
Please, Sign In to add comment