Der Versuch, eine Funktion zu erstellen, die einen Vektor von Objekten mit initialisierten Objekten füllen wird. Bitte helfen. ERROR: Segmentation fault (core dumped)Segmentierungsfehler im Code erhalten
EDIT:
Ok so, auftretendes Problem in der Linie zu sein scheint, wenn man versucht OBJ [0] .age zuzugreifen.
Auch vergessen, die Point2d-Funktion kommt von OpenCV-Bibliotheken, die ich hinzufügen, aber sie scheinen nicht dazu beitragen, den Fehler in keiner Weise.
#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; }
Sie so freundlich Wäre als rant eine nützliche Beschreibung zu ersetzen, was Ihr Code soll es tun und wo es abstürzt? – Quentin
Umarmen Sie die Änderung :-). Übrigens funktioniert der alte Schulweg immer noch, aber die Bibliotheken sollten es dir leichter machen. – Stefan
Parameter 'objtracker O' - das wäre ein * Wert * Parameter. Der Vektor des Aufrufers bleibt ziemlich leer. Und 'OBJ' wird nie mit * irgendetwas * in diesem Code aufgefüllt, also bin ich nicht überrascht, dass der Subscript Operator Fehler hat. Schlagen Sie [ein gutes C++ Buch] vor (https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) und eine gewisse Zeit für das erneute Hochfahren wäre in Ordnung? – WhozCraig