Fehlermeldung: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt"

NotThatJenny

Mitglied
Hi,

beim Compilieren erhalte ich nen Fehler den ich mir nicht wirklich erklären kann...
Als Hinweis erhalte ich:
"Zusätzliche Informationen: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

Probleme macht die Zeile: "vecRulesHash[i] = temp;"
Wüsste aber nicht wieso das falsch sein sollte.

als String erhält die Funktion z.B.: "p0:A:x>2->FA:0.5, p1:F->FA:1"
Das sind 2 Regeln, die durch Komma voneinander getrennt sind. Die "explode"-Funktion separiert anhand eines gegebenen Trennzeichens. Und die Funktion "replaceArrow" ersetzt in einem String die Zeichen "->" mit "#".

Code:
vector<Rule> Analyze::createRuleSet(string rawData){
	string raw = rawData;
	int size, index, i;

	vector<string> vecRulesArrow = explode(raw, ",");
	vector<string> vecRulesHash; 
	size = vecRulesArrow.size();
	for(i=0; i< size; i++){
		temp = replaceArrow(vecRulesArrow[i]);
		vecRulesHash[i] = temp;
	}
        ...
       return mVecRules;
}

Hat jemand ne Idee was hier falsch sein könnte?
Danke schonmal!

Grüsse,

Jenny
 
Hallo Jenny,

die Variable "vecRulesHash" ist nicht initialisiert. Dir fehlt mindestens ein:
C++:
vecRulesHash = gcnew vector<string> ();
Wenn du außerdem mittels Index auf Elemente von "vecRulesHash" zugreifen willst, musst du vorher auch die entsprechende Anzahl Elemente angelegt haben.

Gruß
MCoder
 
Hi,

so wie du es geschrieben hast, konnte ich es leider nicht compilieren. Hatter derweil aber auch schon rausgefunden, dass ich die Anzahl der Elemente festlegen muss.

C++:
size = vecRulesArrow.size();
vector<string> vecRulesHash(size);

So funktionierts :)
 

Neue Beiträge

Zurück