head一直是nullptr,在这之前定义head指针为NULL。
那你有没有给head指向一个对象啊。read的时候head还是空的吧,这时候进行p->next必死无疑啊
没给head申请空间。先给head申请空间:head = (teacher*)malloc(sizeof(teacher));head->next = 0;