g++ Fehler?



  • Hallo,
    also ich hab hier ein Problem mit dem g++ Compiler unter Linux.
    Ich hab eine Funktion erstellt, die in etwa so aussieht:
    void* ReadField (int Pos, char* Text, char sepASCII, char* ret);

    Jetzt rufe ich diese Funktion auf folgende Art und Weise auf:
    ReadField (1, derText, 44, retRF);

    Nun bin ich mit einem Debugger ran gegangen und stelle fest, dass der erste Parameter beim Aufruf der Funktion mal 2, mal 4 ist, obwohl ich immer 1 übergebe. Hat jemand eine Idee? Oder vielleicht einen anderen C++ Compiler für Linux?



  • anderer compiler 😃 gcc ist der compiler für linux (mal von ein paar kleinen nebenbuhlern, die meines erachtens aber nicht so gut sind).

    poste bitte mal den quellcode von der funktion, vielleicht haste da irgendwo nen fehler drin



  • Hm, gcc mag wohl diverse includes nich, die leider einige Klassen enthalten 😉
    Also die Funktion wäre riesig, die poste ich jetzt nich. Die wesentlichen Sachen hab ich geshotet und mal hierhin gestellt. Man achte auf die roten Pfeile. Der Code selbst sollte hier eigentlich aufgrund der Einfachheit keine Fehler enthalten 😉



  • hm, mir fällt nix besonderes auf. ändert die funktion im durchlauf den wert pos? kann es z.b. sein, dass der breakpoint erst aufgerufen wird, nachdem der funktionsaufruf stattgefunden hat? (ich hab keine ahnung von dem debuger, hab bis jetz noch nicht gebraucht)



  • Ok, ich hab jetzt den Tip bekommen, dass es hierbei sein kann, dass der Compiler den Pointer falsch setzt, wenn man einen Wert direkt übergibt. Ich hab ihm im Header jetzt gesagt, dass er "const int Pos" übergeben soll, dann hat es funktioniert. Danke Trotzdem... 😃


Anmelden zum Antworten