c语言,为什么我的这个for循环后面的语句不执行,程序直接结束

void print (struct student *stu)
{
struct student *p3;
int n=1;

p3=stu;

for(;(*p3).num!=0;)
{
    printf("student %s(%d)的成绩是:%.2f\n",(*p3).name,(*p3).num,(*p3).score);
    p3=(*p3).next;
    n+=1;
} /*这个循环之后的语句都不会执行,主函数调用这个函数之后,后面所有的语句也不执行,直接跳出程序*/
printf("54566445465\n");/*比如这个语句,就不会执行*/

}

那要看你传入的stu指针是不是空啊。如果是空指针,程序直接就崩掉了

说明for循环有异常,程序结束返回的状态是0吗