Valgrind 도구를 사용하여 코드를 디버깅했습니다. 이 함수는이 오류를 보여줍니다. 나는 아래에 오류와 나의 기능을 주었다. 나는 여기서 어떤 문제가 있는지 모른다. 어떻게 수정합니까? 내 오류가 있습니다.초기화되지 않은 값이 스택 할당에 의해 생성되었습니다.
초기화되지 않은 값이 0x80996D7에서 스택 할당에 의해 만들어진 : cdtojd (표준 : : 문자열 const를 &를)
내 코드입니다.
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;
}
sscanf()에서 오류가 있는지 확인해 보셨습니까? –
sscanf가 성공했는지 확인하십시오. – Igor