C语言程序设计第四版 例题9.9 对着代码输入的但是无法执行 报错说已引发异常求解惑啊

用的visual 2019

代码如下:

#include <stdio.h>
#include<stdlib.h>
#define LEN sizeof(struct Student)
struct Student
{
	long num;
	float score;
	struct Student* next;

};
int n;
struct Student* creat(void)
{
	struct  Student* head;
	struct Student* p1, * p2;
	n = 0;
	p1 = p2 = (struct Student*)malloc(LEN);
	scanf("%ld,%f", &p1->num, &p1->score);
	head= NULL;
	while (p1->num!=0)
	{
		n = n + 1;
		if (n == 1)head = p1;
		else p2->next = p1;
		p2 = p1;
		p1 = (struct Student*)malloc(LEN);
		scanf("%ld,%f", &p1->num, &p1->score);
	}
	p2->next = NULL;
	return(head);
}
int main()
{
	struct Student* pt;
	pt = creat();
	printf("\nnum:%ld\nscore:%5.lf\n", pt->num, pt->score);
	return 0;
}

输入如下:

错误提示如下:

对着敲,也容易错。好好检查一下。提示你指针是空的