tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
2823
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    NotThatJenny NotThatJenny ist offline Mitglied
    Registriert seit
    Sep 2003
    Beiträge
    23
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    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
     

  2. #2
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Hallo Jenny,

    die Variable "vecRulesHash" ist nicht initialisiert. Dir fehlt mindestens ein:
    Code cpp:
    1
    
    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
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  3. #3
    NotThatJenny NotThatJenny ist offline Mitglied
    Registriert seit
    Sep 2003
    Beiträge
    23
    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.

    Code cpp:
    1
    2
    
    size = vecRulesArrow.size();
    vector<string> vecRulesHash(size);

    So funktionierts
     

  4. #4
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Zitat Zitat von NotThatJenny Beitrag anzeigen
    so wie du es geschrieben hast, konnte ich es leider nicht compilieren.
    Ja, damit lag ich daneben. Die von dir gepostete Fehlermeldung ist typisch für .NET, deshalb war ich irgendwie auf Managed C++ fixiert ...

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

Ähnliche Themen

  1. der objektverweis wurde nicht auf eine objektinstanz festgelegt
    Von exiter28 im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 04.11.10, 11:05
  2. Antworten: 4
    Letzter Beitrag: 20.07.10, 15:05
  3. Antworten: 9
    Letzter Beitrag: 16.10.09, 22:26
  4. Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
    Von sarge83 im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 19.12.06, 23:13
  5. Ein Objektverweis wurde nicht auf eine Objektinstanz festgelegt
    Von KikiDieNieWasWeiss im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 04.03.04, 12:09