[1] 授業単元:C
[2] 問題文:最大10人分の名前を格納するポインタ配列を宣言し、
キーボードから一人づつ名前を入力し、その名前の文字列を格納できるメモリ領域を
確保してから名前の文字列を格納し、さらにそのメモリ領域へのポインタを配列に格納する。
最後に入力した人数分について、名前が格納されているアドレスと名前の文字列を出力するコードを
作成せよ。
[3] 環境
 [3.1] OS: Fedora 10
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 明日まで

#include <stdio.h>
int main(void){
char *name[10],tmp[20];
int i,c=0;

printf("名前を最大10人分入力して下さい。\n");
for(i=0; i<10; i++){
scanf("%s",tmp);
name[i] = (char *)malloc(sizeof(char)*(strlen(tmp));
strcpy(name[i],tmp);
c++;
}

for(i=0; i<=c; i++)printf("%x %s\n",name[i],name[i]);
return 0;
}

10人に満たなくても、ctrl-Dで入力を終了出来るようにしたいのですが、できませんでした。