请问大家 这个这个c代码 为什么选release运行不出结果,换成Profilling版本就行了?

问题遇到的现象和发生背景

选TDM-GCC 492 release版本

img

选TDM-GCC 492 Profilling版本

img

问题相关代码,请勿粘贴截图
#include<stdio.h>
#define N 3


struct STU
{             //定义结构体STU
    int id;
    float score;
};

int fun (struct STU stu[], struct STU *s){     //定义函数fun
    int i; 
    *s=stu[0];
    for (i=0;i<N;i++){
        if(stu[i].score<(*s).score) *s=stu[i];
    }
} 

int main(){        //以下是main函数
   struct STU a[N]={{201901, 80.5}, {201902, 98.2}, {201903, 84.3}};
   struct STU *s;
   //编写程序调用函数fun
   fun(a,s);
   printf("%d %f", s->id, s->score);
   
   return 0; 
}
 



运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

根据界面错误信息看是崩溃了,Release不会进行默认初始化,很可能是某个变量没有初始化
你这函数定义或者调用不太合适。
main中修改为:
struct STU s;
fun(a,&s);

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632