struct ScheduleTaskInfo
{
unsigned int nTaskID;
__time64_t timeStartTime;
__time64_t timeEndTime;
};
typedef list<ScheduleTaskInfo> SchedulerList;
SchedulerList::iterator itrSchedulerList;
for(itrSchedulerList = gSchedulerList.begin();itrSchedulerList != gSchedulerList.end();itrSchedulerList++)
{
SYSTEMTIME st;
GetLocalTime(&st);
CTime ctSyatemTime(st);
if (itrSchedulerList->timeEndTime == ctSyatemTime.GetTime())
{
itrSchedulerList = gSchedulerList.erase(itrSchedulerList);
}
}
これを実行すると、forループがクラッシュしています。これはerase(); 私はここで何か間違ったことをやっている?あなたのようにelse-block
でitrSchedulerList++
を記述する必要があり、このリストの要素を消去する際の問題
デバッガで実行しようとしましたか? – GWW
ええ、知りたいことは何ですか? –
セグメンテーションフォルトはどの回線から発生していますか?エラーは何ですか? – GWW