Listen



  • Hallo!

    Ich arbeite grad zum ersten mal mit selbst erstellten Listen in meinem Leben 🙂

    Ich brauch gleich ein Array aus Listen. Veilleicht könnt ihr Könner euch ja mal anschauen, ob ich das so richtig gemacht habe:

    SElement* m_ListenStart;
    
    m_ListenStart = new SElement[anzschadstoffe];
    
    SElement* ele;
    // Die Listen erstellen
    for(int i = 0; i < anzschadstoffe; i++)
      {
        ele = &m_Listenstart[i];
        for(int j = 1; j < ANZ_LISTEN_ELEMENTE; j++)
        {
          ele->next = new SElement;
          ele = ele->next;
        }
        ele->next = &m_ListenStart[i];
      }
    
    // Die Listen wieder löschen;
    SElement* ele1, ele2 ;
    for(int i = 0; i < m_AnzSchadstoffe; i++)
    {
      ele1 = &m_ListenStart[i];
      for(int j = 0; j < ANZ_LISTEN_ELEMENTE; j++)
      {
        ele2 = ele1->next;
        delete ele1;
        ele1 = ele2;
      }
    }
    m_ListenStart = NULL;
    

    Schonmal Dnake im Voraus,

    Gruß, Maxi 🙂



  • Achso, hab vergesssen, es soll eine kreisförmige Liste werden (Ende zeigt auf Anfang)



  • So kann ich da nicht viel zu sagen (ohne den Listencode), ich verstehe aber auch nicht, warum das Ende auf den Anfang zeigt, wenn du nicht weißt wie viele Elemente die Liste hat kannst du sie nicht benutzen und iterieren kannst du sie auch nicht. Wie greifst du auf die Listenelemente zu???

    mfg
    Glamdring



  • Einfaches
    m_ListenStart = NULL;

    reicht hier nicht - mußt schon ein
    delete[] m_ListenStart;

    davorsetzen, um den Speicher auch wieder freizugeben.



  • Naja, es soll eine kreisförmige Liste werden, wo ich immer nacheinander NAchrichten reinschreibe, und dann zähle, wieviele Nachrichgen in den letzten 10 Sekuinden empfangen wurden. Das klappt schon. Es soll keine Liste werden, zum Speichern von Daten, daer auch kreisförmig.

    wie meinst du das mit delete?

    Ich mache doch in jeder Schleife das hier:

    for(int i = 0; i < anzschadstoffe; i++)
    { 
      ele = &m_ListenStart[i];
      delete ele;
    }
    

    damit werden doch alle Array-elemente gelöscht, doer?


Anmelden zum Antworten