> void testing(void)
> {
> #define NR_STRUCT_A   (4)
>       struct B*  ptr = malloc(sizeof(struct B) + NR_STRUCT_A*sizeof(struct
> A));
>
>       ptr->numelem = NR_STRUCT_A;
>       ptr->item    = (struct A*)(ptr+1);
>
>       ptr->item[0].a = 0;
>       ptr->item[1].a = 1;
>       ptr->item[2].a = 2;
>       ptr->item[3].a = 3;
>       ptr->item[4].a = 100;  /* Wrong, violate memory accessing here! */
> #undef  NR_STRUCT_A }

IMO, this is a viable alternative. The only disadvantage is that it is taking 
an extra sizeof(struct A *) bytes of memory, if memory space is a concern.


________________________________
CONFIDENTIALITY : This e-mail and any attachments are confidential and may be 
privileged. If you are not a named recipient, please notify the sender 
immediately and do not disclose the contents to another person, use it for any 
purpose or store or copy the information in any medium.

Reply via email to