为什么程序会崩溃啊?

不知道为什么在输入这里程序崩溃了,哪错了?麻烦给我讲下原因,谢谢

img

img

供参考:
第31行 struct student *st[50]; 这里定义了一个指针数组,正确的是:struct student st[50];
第9行 void fun(struct student *st[50], int n) 形参也是错误的,应修改为:void fun(struct student st[], int n)
第24行 free(temp); 这句应移动到第26行与第27行之间。

I64d是啥?改为%lld