初期化されたオブジェクトを持つオブジェクトのベクトルを埋め込む関数を作成しようとしています。 助けてください。 ERROR:セグメンテーション障害(コアダンプ)コード内でセグメンテーションエラーを取得する
EDIT:OBJにアクセスしようとしたとき
[OK]をので、問題が[0] .ageラインで発生しているように見えます。
また、Point2d関数は、私が追加するForvoCライブラリから来ているのを忘れていましたが、何らかの形でエラーに寄与していないようです。
#include <iostream>
#include <vector>
struct objtracker
{
int age;
vector<int> frID;
vector<Point2d> cent;
objtracker()
{
age = 1;
}
~objtracker()
{
// Destroy ObjectTracker
}
};
vector<objtracker> OBJ;
void create_new_tracker(vector<objtracker> OBJ,Point2d cent,int frameID,objtracker O){
O.cent.push_back(cent);
O.frID.push_back(frameID);
}
int main(){
Mat Y;
Y = imread("hor.jpeg",CV_LOAD_IMAGE_COLOR);
Point2d J;
J.x = 100;
J.y = 100;
int frameID = 100;
objtracker O;
create_new_tracker(OBJ,J,frameID,O);
create_new_tracker(OBJ,J,frameID,O);
create_new_tracker(OBJ,J,frameID,O);
create_new_tracker(OBJ,J,frameID,O);
create_new_tracker(OBJ,J,frameID,O);
cout<<OBJ[0].age<<"\n";
return 1; }
のようなものは、あなたがとても親切だろうことがあります 値によって渡されると、それは反映されませんやりたいことやクラッシュする場所? – Quentin
変更を受け入れる:-)古い学校のやり方はまだ変わっていませんが、図書館はそれをより簡単にするはずです。 – Stefan
パラメータ 'objtracker O' - これは* value *パラメータになります。呼び出し元のベクトルは空のままです。そして、このコードでは 'OBJ'には* anything *が決して置かれないので、私は添え字演算子の不具合は驚いていません。 [良いC++の本](https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)を提案し、いくつかの再立ち上げ時間は順番になるでしょうか? – WhozCraig