Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <string.h>
- typedef struct {
- uint16_t var1;
- uint16_t var2;
- } bar_t ;
- typedef struct {
- bar_t (* bar)[3];
- uint8_t spare;
- } foo_t;
- typedef struct {
- bar_t bar[3];
- } spam_t;
- void printVar(foo_t foo, spam_t * spam)
- {
- printf("foo.bar[0]->var1: %dn", foo.bar[0]->var1);
- printf("foo.bar[1]->var1: %dn", foo.bar[1]->var1);
- printf("foo.bar[2]->var1: %dn", foo.bar[2]->var1);
- printf("spam->bar[0].var1: %dn", spam->bar[0].var1);
- printf("spam->bar[1].var1: %dn", spam->bar[1].var1);
- printf("spam->bar[2].var1: %dnn", spam->bar[2].var1);
- printf("foo.bar[0]->var2: %dn", foo.bar[0]->var2);
- printf("foo.bar[1]->var2: %dn", foo.bar[1]->var2);
- printf("foo.bar[2]->var2: %dn", foo.bar[2]->var2);
- printf("spam->bar[0].var2: %dn", spam->bar[0].var2);
- printf("spam->bar[1].var2: %dn", spam->bar[1].var2);
- printf("spam->bar[2].var2: %dnn", spam->bar[2].var2);
- }
- int main(int argc, char * argv[])
- {
- printf("Start...n");
- foo_t foo;
- spam_t * spam = (spam_t *)malloc(sizeof(spam_t));
- memset(&foo, 0, sizeof(foo_t));
- memset(spam, 0, sizeof(spam_t));
- foo.bar = &(spam->bar);
- printVar(foo, spam);
- spam->bar[0].var1 = 1;
- spam->bar[1].var1 = 1;
- spam->bar[2].var1 = 0;
- spam->bar[0].var2 = 2;
- spam->bar[1].var2 = 1;
- spam->bar[2].var2 = 0;
- //foo.bar[2]->var2 = 3;
- printVar(foo, spam);
- free(spam);
- printf("Done...n");
- return 0;
- }
Add Comment
Please, Sign In to add comment