How to fix warning: ‘st’ may be used uninitialize, same with 'last_mod_time' and 'target_mod_time'
struct stat *st;
53 st->st_mtim.tv_sec = 0;
54 struct stat *last_mod_time;
55 last_mod_time->st_mtim.tv_sec = 0;
56 while (target_rule->dependencies != NULL) {
    57 if (stat(dep->rule->target, st) == 0) {
        58 if (last_mod_time->st_mtim.tv_sec == 0) {
            59 last_mod_time = st;
            60
        }
        else {
            61 if (last_mod_time->st_mtim.tv_sec > st->st_mtim.tv_sec) {
                62 last_mod_time = st;
                63
            }
            else if (last_mod_time->st_mtim.tv_sec == st->st_mtim.tv_sec) {
                64 if (last_mod_time->st_mtim.tv_nsec > st->st_mtim.tv_nsec) {
                    65 last_mod_time = st;
                    66
                }
                67
            }
            68
        }
        69
    }
    else if (stat(dep->rule->target, st) == -1) {
        70 perror("st_mtim");
        71 exit(1);
        72
    }
    73 74
}
75 struct stat *target_mod_time;
76 if (stat(target, target_mod_time) == 0) {
    77 printf("successfully got target time");
    78
}
else if (stat(target, target_mod_time) == -1) {
    79 perror("st_mtim");
    80 exit(1);
    81
}
