malloc触发断点怎么解决

#include<stdio.h>
#include<stdlib.h>
typedef struct _Student
{
    int id;//学号
    char name[10];//姓名
    int chinese;//语文成绩
    int math;//数学成绩
    int english;//英语成绩
}Student;
typedef struct _Node
{
    Student stu;
    struct _Node* pNext;
}Node;
Node *g_Head = NULL;
void Welcome();//欢迎
void InputStudent();//输入学生的信息
int main()
{
    while (1)
    {
        Welcome();
        char ch = getchar();
        switch (ch)
        {
        case'1':InputStudent();//成绩录入
            break;
        case'2'://成绩统计
            break;
        case'3'://成绩输出
            break;
        case'4'://成绩保存
            break;
        case'5'://退出程序
            break;
        }
    }
    return 0;
}
void Welcome()
{
    printf("******************************************** \n");
    printf("*=========欢迎使用学生成绩统计系统=========*\n");
    printf("*==============请选择功能列表==============*\n");
    printf("*===========\t1.成绩录入\t===========*\n");
    printf("*===========\t2.成绩统计\t===========*\n");
    printf("*===========\t3.成绩输出\t===========*\n");
    printf("*===========\t4.成绩保存\t===========*\n");
    printf("*===========\t5.退出程序\t===========*\n");
    printf("******************************************** \n");
}
/// <summary>
/// 学生成绩的录入
/// </summary>
void InputStudent()
{
    
    Node* pNewNode = (Node*)malloc(sizeof(Node));
    pNewNode->pNext = NULL;
    if (g_Head == NULL)
    {
        g_Head = pNewNode;
    }
    else
    {
        pNewNode->pNext = g_Head;
        g_Head = pNewNode;
    }
    printf("请输入学生信息\n");
    printf("请输入你的学号\n");
    scanf("%d\n", &pNewNode->pNext->stu.id);
    printf("请输入你的姓名\n");
    scanf("%s\n", pNewNode->pNext->stu.name);
    printf("请输入你的语文成绩\n");
    scanf("%d\n", &pNewNode->pNext->stu.chinese);
    printf("请输入你的数学成绩\n");
    scanf("%d\n", &pNewNode->pNext->stu.math);
    printf("请输入你的英语成绩\n");
    scanf("%d\n", &pNewNode->pNext->stu.english);
    printf("学生成绩录入成功\n");
}

#include<stdio.h>
#include<stdlib.h>
typedef struct _Student
{
    int id;//学号
    char name[10];//姓名
    int chinese;//语文成绩
    int math;//数学成绩
    int english;//英语成绩
}Student;
typedef struct _Node
{
    Student stu;
    struct _Node* pNext;
}Node;
Node *g_Head = NULL;
void Welcome();//欢迎
void InputStudent();//输入学生的信息
int main()
{
    while (1)
    {
        Welcome();
        char ch = getchar();
        switch (ch)
        {
        case'1':InputStudent();//成绩录入
            break;
        case'2'://成绩统计
            break;
        case'3'://成绩输出
            break;
        case'4'://成绩保存
            break;
        case'5'://退出程序
            break;
        }
    }
    return 0;
}
void Welcome()
{
    printf("******************************************** \n");
    printf("*=========欢迎使用学生成绩统计系统=========*\n");
    printf("*==============请选择功能列表==============*\n");
    printf("*===========\t1.成绩录入\t===========*\n");
    printf("*===========\t2.成绩统计\t===========*\n");
    printf("*===========\t3.成绩输出\t===========*\n");
    printf("*===========\t4.成绩保存\t===========*\n");
    printf("*===========\t5.退出程序\t===========*\n");
    printf("******************************************** \n");
}
/// <summary>
/// 学生成绩的录入
/// </summary>
void InputStudent()
{

    Node* pNewNode = (Node*)malloc(sizeof(Node));
    pNewNode->pNext = NULL;
    if (g_Head == NULL)
    {
        g_Head = pNewNode;
    }
    else
    {
        pNewNode->pNext = g_Head;
        g_Head = pNewNode;
    }
    printf("请输入学生信息\n");
    printf("请输入你的学号\n");
    scanf("%d", &pNewNode->stu.id);
    printf("请输入你的姓名\n");
    scanf("%s", pNewNode->stu.name);
    printf("请输入你的语文成绩\n");
    scanf("%d", &pNewNode->stu.chinese);
    printf("请输入你的数学成绩\n");
    scanf("%d", &pNewNode->stu.math);
    printf("请输入你的英语成绩\n");
    scanf("%d", &pNewNode->stu.english);
    printf("学生成绩录入成功\n");
}