あるクラスのポインタのvectorを返す関数を作成している時にSIGILLエラーとsegmentation faultが出て困っています.
関数はstd::vector<ClassA*>を返す関数で,ある条件に引っかかった場合は空のvectorを返し,それ以外の場合は必要に応じてpointerをpush_backして出来上がったvectorを返すという設計です.
cpp
1std::vector<ClassA*> func() 2{ 3 std::vector<ClassA*> aPtrs; 4 5 if (/* some condition */) // early termination 6 { 7 return aPtrs; 8 } 9 10 while(/* some condition */) 11 { 12 ... 13 aPtrs.push_back(ptr_to_class_A) 14 } 15 return aPtrs; 16}
mainのコード側は以下のようになっています.
cpp
1std::vector<ClassA*> APtr_vec = func(); 2
最初のifの条件に引っかかった場合は,SIGILLのエラーが出ており,引っかからなかった場合はsegmentation faultが出ています.何が原因として考えられるでしょうか?
ご回答お待ちしております.
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/07 11:11