イテレータからTCHAR[]
を出力しようとすると、アクセス違反が発生し、これを解決してイテレータを使用する方法はありますか?何がうまくいかないのか分かりませんか?イテレータアクセス違反の原因と解決方法
struct FileInfo
{
TCHAR path[MAX_PATH];
};
void iter()
{
std::vector<FileInfo> v;
for (int i = 0; i < 5; i++)
v.push_back({ _T("abc") });
for (int i = 0; i < v.size(); i++) {
OutputDebugString(_T("Ok "));
OutputDebugString(v[i].path);
OutputDebugString(_T("\n"));
}
for (auto it = v.begin(); it != v.end(); it++){
OutputDebugString(_T("Bad "));
OutputDebugString((LPTSTR)*it->path); // CAUSES runtime error here
OutputDebugString(_T("\n"));
}
}