Code Guard Meldung: 'pointer arithmetik in invalid memory'



  • Hallo alle zusammen,

    hoffe mir kann jemand von Euch helfen! Ich programmier noch nicht so lang mit dem C++ Builder, aber bisher bin ich immer ganz gut zurecht gekommen. Doch nun bekomm ich an einer Stelle, an der mein Programm wegfliegt, eine CodeGuard Meldung, die sich nicht in der Borland Hilfe finden lässt. Kann mir vielleicht jemand sagen, was diese Meldung zu sagen hat. Sie verweißt diese CodeStelle:

    sTemp = ListView->Items->Item[m_izaehler-1]->SubItems->Strings[5].c_str();
    

    Gruß



  • Wie ist sTemp deklariert ??



  • Sorry hat ich vergessen.

    sTemp ist ein ganz normaler 'string'

    Gruß



  • Was zum Teufel ist ein ganz normaler String ?
    Ansistring, char *, std::string oder watt ?



  • Der Typ von sTemp spielt wahrscheinlich keine Rolle bezüglich der CodeGuard-
    Meldung. Das Problem ist wahrscheinlich mal wieder c_str(); zur korrekten
    Verwendung von c_str() steht in der Borland-Hilfe ein Beispiel, außerdem
    findet man sicherlich im Forum dazu allerhand.
    Wenn sTemp nicht zwingend vom Typ char* sein muß, würde ich einfach AnsiString
    verwenden, z.B.:

    AnsiString sTemp = ListView->Items->Item[m_izaehler-1]->SubItems->Strings[5];
    

    Gruß,

    Alexander



  • Hallo,

    Wenn dein Programm "wegfliegt", dann zeigt es doch bestimmt auch eine Fehlermeldung an (ich meine jetzt nicht CodGuard). Ich nehme einfach mal an, dass bei dir irgendwas mit den Indizes nicht stimmt. Kontrollier doch einfach mal ob Item[m_izaehler-1] überhaupt existiert. An der Zuweisung kann es eigentlich nicht liegen.

    Ciao


Anmelden zum Antworten