Ben kodumu Valgrind aracını kullanarak hata ayıkladı. Bu hatayı bu işlevde gösterir. Hatanın ve işlevimin altında verdim. Burada sorunun ne olduğunu bilmiyorum Nasıl düzeltebilirim? Hatanım.Başlatılmamış değer, yığın ayırma tarafından oluşturuldu
başlatılmamış değeri 0x80996D7 bir yığın ayırma tarafından yaratıldı: cdtojd (std :: string const &)
Benim Kod olduğunu.
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;
}
Hataları sscanf() denetlemeyi düşündünüz mü? –
sscanf başarılı oldugunu kontrol edin – Igor