{if(i->num==3) p=i;del(pt,p,3);}这句del调用在if语句之外,由于没有大括号扩住p=i;del(pt,p,3)。所以del不是if语句的一部分。程序运行时i->num为1,if条件不满足,p=i没有执行,p没有背赋值啊,p就是个随机值,后面执行了del函数,实参p又没有赋值,所以错了。