>>211-213 わかりました.
この場合 namelen はプログラマが陽に管理することになるんですね?

pname=malloc( sizeof(struct name) +9 ); のとき
pname->namestr[9]              までOKなので,例えば
pname->namelen = 10;            と設定してやるとか.

struct name {
  int namelen;
  char * namestr;
};

とすれば
struct neme namae; のとき
namae.namestr = xx;
namae->namestr = (char*)malloc(xx);

と出来ますよね?こっちのほうがいいような.freeしにくいのか?
この構造体のメリットは配列長情報を格納できることなのでしょうか?
いまいちピンとこないのですが,有効な利用法などはあるのですか?