0
セグメントフォルトが発生すると、非常に大きなセットのループが発生しますが、どこに問題がありますか?ループ受信信号SIGSEGVに対して大きな文字列セットを反復処理すると、セグメンテーションフォールト
void test(std::set<std::wstring> *names)
{
std::set<std::wstring>::iterator itr;
for (itr = names->begin(); itr != names->end(); ++itr)
{
std::wstring name = *itr;
}
}
エラー:
Program received signal SIGSEGV, Segmentation fault. 0x00007fff84b62c54 in std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t>>::basic_string(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > const&)>() from /usr/lib/libc++.1.dylib
コードをしばらく反復した後に終了しますか?または、ループに入った直後に終了しますか?渡されたセットがNULLでないと確信していますか? –
はループの2番目の反復の後に終了しました。長さが0でない名前のみがセットに含まれます。 – Tina