Wer ist der Böse? Codeguard, AnsiString oder etwa ich???



  • Hi zusammen,

    ich hab ein kleines Problem mit AnsiString und dem Codeguard. Und zwar hab ich im Header-Datei folgendes:

    struct ConnectStruct{
                         AnsiString Name;
                         int Anzahl[10];
                         AnsiString Pfad[4];
                        }Eintrag[10];
    

    und in der eigentlichen C-Datei

    for (int i=0; i<10; i++)
    {
     for (int j=0; j<4; j++)
     {
      Eintrag[i].Pfad[j] = ini->ReadString("Test","Pfad " + IntToStr(j), "");
     }
    }
    

    Bei der Zeile wo die Zuweisung kommt meckert mich CodeGuard immer an "Zeigerarithmetik in ungültigem Speicher". Was zum Henker soll das heißen?

    Schon mal vielen Dank im Voraus!
    Phips!



  • Jetzt hab ich das grad nochmal anders ausprobiert

    for (int i=0; i<10; i++)
    {
     Eintrag[i].Pfad[0] = ini->ReadString("Test","Pfad " + IntToStr(0), "");
     Eintrag[i].Pfad[1] = ini->ReadString("Test","Pfad " + IntToStr(1), "");
     Eintrag[i].Pfad[2] = ini->ReadString("Test","Pfad " + IntToStr(2), "");
     Eintrag[i].Pfad[3] = ini->ReadString("Test","Pfad " + IntToStr(3), "");
    }
    

    Da sagt Codeguard nix mehr von wegen ungültige Zeigeroperationen. Also ich verstehs echt nicht.

    Phips!



  • Ich kanns ja kaum glauben, hat hier keiner Probleme mit dem Codeguard?
    Oder benutzt den einfach niemand weil derjenige sowieso _immer_ perfekten Code schreibt? 😉



  • Ich kann das Problem nicht nachvollziehen. Der CodeGuard meines BCB6 hat daran nichts auszusetzen.



  • Könnte es an dem IntToStr liegen? Ich meine, dass er nicht die Variable auswerten kann. Ansonsten bin ich überfragt 😉



  • Phips! schrieb:

    ...
    Oder benutzt den einfach niemand weil derjenige sowieso _immer_ perfekten Code schreibt? 😉

    😃 ja, wir sind hier alle perfekt 😃



  • vielleicht wirst du ja hier fündig:

    http://qc.borland.com/wc/qcmain.aspx?da=573


Anmelden zum Antworten