seltsames Erlebnis



  • Hi Leute,

    also bis her dachte ich das ich wüßte was ich an Quelltext schreib doch gestern wurde ich von VC++ eines besseren belehrt.
    Als hier ein auszug aus dem Quelltext:

    int CUebersetzerDlg::list_search(int nr)
    {
        int erg = 1;
        int listend = 1;
    

    Am Anfang der Funktion setze ich zwei lokale Variablen auf 1 bzw. 0 wobei hier nur "listend" von Interesse ist.
    Ein Stück tiefer beginn ich mit einer Schleife:

    while( listend != 0)   
    {
      if(eingabeliste01->next == NULL)
      {
        listend = 0;
      }
      while (erg != 0)                      
      {
      ...
      } //while erg - Ende
    }//while listend - Ende
    

    Also nach meinem Verständnis sollte er in die erste ("listend") Schleife springen , da ja der Ausdruck wahr ist (listend ist nicht gleich 0). Anschließend prüft er kurz die Liste ob die zu Ende ist wenn ja setzt er "listend" auf 0 ansonsten springt er in die zweite Schleife. Soweit die Theorie, doch in der Praxis wurde ich schwer Überrascht, denn wenn ich die Schleifen so stehen habe hängt das System beim Aufruf der ersten Schleife, wenn ich nun die Initialisierung von listend auf 0 setze läuft die Schleife genau einmal durch (was ja auch richtig währe).
    Nun meine Frage warum hängt diese erste while - Schleife ? 😕 Als ich hab mir da in den letzten Stunden die Finger wund debugged und nichts gefunden 😡 . Das witzige ist die zweite (innere Schleife) läuft nur die äußere nicht. Hat da jemand ne Idee ?

    [ Dieser Beitrag wurde am 13.08.2002 um 09:54 Uhr von TheShadow editiert. ]



  • !!! SYNTAXFEHLER !!!

    Lösche mal das ; nach hinter der while-Zeile !

    ... editieren, nachdem sichs einer angeschaut hat, ist gemein !! 😉

    Poste doch mal die ganze Schleife !!

    [ Dieser Beitrag wurde am 13.08.2002 um 09:57 Uhr von RenéG editiert. ]



  • Sorry Rene G

    das mit dem Simekolon war ein Schreibfehler von mir als ich den Quelltext da reingehämmert hab in den Thread der mir leider erst auffiel als ich den Thread schon losgeschickt hab.

    Ich hab es mittlerweile gefunden -> es lag am System selbst.
    Die Kiste ist mir schlicht und ergreifend über ungefähr vier Stunden abgeraucht (Speicherfehler im Prog [ hat sich zum Schluß ungefähr 500 MB RAM gezogen]) und wenn VC++ nicht genug Saft Speicherbekommt naja dann ... Irgendwann hat er mir auch den Klassenbereich zerlegt und dann hab Ich die Kiste aus Wut auseschaltet und wieder hochefahren und es lief wieder alles normal.
    Aber trotzdem danke für das ansehen... ich werde demnächst auch alle Möglichkeiten ausnützen (inklusive eines neustarts und richtigen Abschreibens bei den Threads) 🙂


Anmelden zum Antworten