ファイルから動的配列にレコードをロードしたいと考えています。次のコードがあります。
typedef struct my_data {
char name[100];
}my_data;
struct my_data *data;
void load_data()
{
struct my_data *temp = NULL;
int i = 0;
FILE * in;
if((in = fopen("data.txt","rt")) != NULL) {
temp = malloc((i+1)*sizeof(my_data));
while(!feof(in))
{
fscanf(in,"%s", &temp[i].name);
i++;
temp = realloc(temp,((i+1)*sizeof(my_data)));
};
fclose(in);
data = temp;
free(temp);
for (i=0;i<sizeof(data);i++ )
printf("%s\n",data[i].name);
}
私は100以上のレコードを持っています。なぜ4つしか表示されないのですか?