早速のレス有難う御座います
ただ、ちょっと自分には難しく思えて・・・
names[index++] = strdup(buf); このあたりもちょっと・・