時間を取得しようとするコードのスニペットを次に示します。
void GetDate(int &month,int &day,int &year){
time_t SystemTime;
struct tm *OSTime;
OSTime=localtime(&SystemTime);
month=OSTime->tm_mon;
day=OSTime->tm_mday;
year=OSTime->tm_year;
month+=1;
year+=1900;
}
次の場合:
month=OSTime->tm_mon;
それはスローします:
GonzalesP2.exe の 0x01101123 で未処理の例外: 0xC0000005: アクセス違反の読み取り場所 0x00000010。
GetDate を呼び出すメソッドは次のとおりです。
void Calendar::SetMonthYear(int mon,string sYr){
string temp;
GetDate(tMonth,tDay,tYear);
if(mon==0 && sYr=="0000"){
mon=tMonth;
sYr=tYear;
}
month=mon;
//get the year
temp=sYear.at(2);
temp+=sYear.at(3);
year=atoi(temp.c_str());
//get the century
temp=sYear.at(0);
temp+=sYear.at(1);
cent=atoi(temp.c_str());
FillMonthGrid();
}
助けてください。