>>80
こういう使い方がマズイということじゃないかな。

struct a{
 int namelen;
 char namestr[10];
};

struct a{
 int namelen;
 char namestr[20];
};

foo()
{
 struct a *pa;
 struct b *pb;

 pa = malloc(sizeof(struct a));

 /* pa->namestr[] に値をセット*/

 pb = (struct b)pa;

/* pb->namestr[] の値を参照*/
}