arnuld
7/23/2011 9:31:00 AM
AIM: To learn how to put a struct inside a struct
WHAT I GOT: Success :)
WHY I PUT IT HERE: to get some suggestions, if there is anything that
can be improved.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct inside
{
char arr[10];
int num;
};
struct parent
{
struct inside member1;
struct inside* member2;
};
void print_parent_struct(struct parent s);
void print_parent_struct_p(struct parent* ps);
int main(void)
{
struct inside d, *pd;
struct parent p, *pp;
strcpy(d.arr, "struct");
d.num = -1;
p.member1 = d;
print_parent_struct(p);
pd = malloc(1 * sizeof *pd);
pp = malloc(1 * sizeof *pp);
if(NULL == pd || NULL == pp)
{
fprintf(stderr, "IN: %s @%d: Out of Memory\n", __FILE__, __LINE__);
exit(EXIT_FAILURE);
}
strcpy(pd->arr, "pointer");
pd->num = 100;
pp->member2 = pd;
print_parent_struct_p(pp);
free(pd);
free(pp);
return 0;
}
void print_parent_struct(struct parent s)
{
printf("arr = %s, num = %d\n", s.member1.arr, s.member1.num);
}
void print_parent_struct_p(struct parent* ps)
{
printf("arr = %s, num = %d\n", ps->member2->arr, ps->member2->num);
}
================== OUTPUT ==================
[arnuld@dune C]$ gcc -ansi -pedantic -Wall -Wextra struct-inside-struct.c
[arnuld@dune C]$ ./a.out
arr = struct, num = -1
arr = pointer, num = 100
[arnuld@dune C]$
--
www.lispmachine.wordpress.com
find my email-ID @above blog