Ich debuggte meinen Code mit dem Tool Valgrind. Es zeigt diesen Fehler bei dieser Funktion an. Ich habe unten den Fehler und meine Funktion angegeben. Ich weiß nicht, was ist das Problem hier? Wie kann ich es korrigieren? Mein Fehler ist.Nicht initialisierter Wert wurde durch eine Stapelzuweisung erstellt
Uninitialised Wert durch einen Stapel Zuweisung an 0x80996D7 erstellt wurde: cdtojd (std :: string const &)
mein Code.
double cdtojd(const string &cdate);
double cdtojd(const string &cdate)
{
int dd,mm,yy;
int y,m;
double jd=0;
//mm = atoi(cdate.substr(0,2).c_str());
//dd = atoi(cdate.substr(2,2).c_str());
//yy = atoi(cdate.substr(4,4).c_str());
sscanf(cdate.c_str(),"%2d%2d%4d",&mm,&dd,&yy);
//cout<<mm<<"..."<<dd<<"...."<<yy<<endl;
y = (yy - 1900) * 372;
m = (mm-1) * 31;
jd = dd + m + y;
return jd;
}
Haben Sie in Betracht gezogen, sscanf() auf Fehler zu überprüfen? –
Überprüfen Sie, ob sscanf erfolgreich war – Igor