请问下大神,这个为什么会错。麻烦调释下。。
											 程序代码:
程序代码:#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
struct horse
{
    int age;
    int height;
    char name[20];
    char father[20];
    char mother[20];
    struct horse *next;
};
int main(void)
{
    struct horse *current;
    struct horse *first;
    struct horse *previous;
    char test = '\0';
    for(;;)
    {
        printf("请问想填写马匹的资料吗(Y or N):");
        scanf(" %c",&test);
        if(tolower(test) =='n')
            break;
        current = (struct horse*)malloc(sizeof(struct horse*));
        if(current == NULL)
            continue;
        if(first == NULL)
            first = current;
        if(previous != NULL)
            previous->next = current;
        printf("请输入马匹的名字:");
        scanf("%s",current->name);
        printf("请输入%s的age:",current->name);
        scanf("%d",¤t->age);
        printf("请输入%s的height:",current->name);
        scanf("%d",¤t->height);
        printf("请输入%s的father名字:",current->name);
        scanf("%s",current->father);
        printf("请输入%s的mother的名字:",current->name);
        scanf("%s",current->mother);
        current->next = NULL;
        previous = current;
    }
    current = first;
    while(current != NULL)
    {
        printf("马匹的名字叫做%s,它的年龄是%d,它的身高是%d.\n",current->name,current->age,current->height);
        printf("他的爸爸叫做%s,他的妈妈叫做%s\n",current->father,current->mother);
        previous = current;
        current = current ->next;
        free(previous);
    }
    return 0;
}										
					
	
 
											






 
	    

