从char类型分配给char [20]类型时,类型不兼容

typedef struct student
{
int id;
char name[ 20 ];
float perc;
} Student;
void Assign (Student *record )
{
record -> id = 12;
record-> name="yaiha";
record -> perc = 85.6;
}
void Out( Student record )
{
printf( "Id is: %d \n", record.id );
printf( "Name is: %s \n", record.name );
printf( "Percentage is: %f \n", record.perc );
}
void main()
{
Student S;
Assign( &S );
Out( S );
}

代码无法分配char数组的值,也不知道为什么。 代码无法分配char数组的值,也不知道为什么。 代码无法分配char数组的值,也不知道为什么。 代码无法分配char数组的值,也不知道为什么。 代码无法分配char数组的值,也不知道为什么。代码无法分配char数组的值,也不知道为什么。