指针指向无法输出,求解答

****

#include <stdio.h>
#include <stdlib.h>

typedef struct Student_Node {    
    char name[20] = {"name"};
    int age = 0;
    long long Student_number = 0;
    float score = 0;
    Student_Node *next_Node = NULL;
} STU;                            

void showStudent(STU *p);
void getStudentProMax(STU *head);



int main() {                    
    STU *head ;
    getStudentProMax(head);
    showStudent(head);
    return 0;
}

void getStudentProMax(STU *head) {
    int n = 0;
    printf("请输入人数(n):");
    scanf("%d", &n);

    STU *p ;
    head = p;

    while ((p = (STU *)malloc(sizeof(STU))) != NULL && n > 0 ) {        

            printf("请输入姓名年纪学号和成绩:");
        scanf("%s%d%d%lf", &p->name, &p->age, &p->Student_number, &p->score);
        p = p->next_Node;
        n--;

    }
}

void showStudent(STU *head) {
    STU *p = head;
    while (p != NULL) {
        printf("名字%s 年龄%d 学号:%d  成绩:%.2f\n", p->name, p->age, p->Student_number, p->score);
        p = p->next_Node;
    }

}

showStudent无法输出,求解答。