Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

02.01.2010, 15:50

Verkettete Liste in C

Hallo Leute.
Ich habe folgendes Problem.
ich habe eine einfach verkettete liste und möchte diese am ende meines programm komplett freigeben.
also jedes element.
aber ich ich habe irgendwie eine denkblockade. ich komm nicht drauf, wie ich das machen könnte.

ich geh in ner while(current!=NULL) alle elemente durch mit: current = current->next.
Aber wenn ich jetzt current lösch, weil ich ja den speicherreigib, dann kann ich nicht auf next gehn... logischerweise. ich komm einfach nicht drauf,

lg

2

02.01.2010, 16:19

Beispielsweise machst du eine temporäre Kopie des next Zeigers, löschst das aktuelle Elemente und machst dann das vom temporären Zeiger zum aktuellen.
Lieber dumm fragen, als dumm bleiben!

3

02.01.2010, 16:43

danke! werds so probieren.

lg

C--

Alter Hase

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

4

02.01.2010, 17:01

Oder du machst eine doppelt verkette list ;)
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

5

02.01.2010, 18:42

ja ich weiß, wär vielleicht gscheiter gwesen... ber da ich mein programm bereits mit ner einfachen liste geschrieben hab wollt ich da nicht noch länger herumtun...
aber danke für den tipp.
lg

6

02.01.2010, 22:47

Für die produktive Anwendung von Datenstrukturen rate ich dir zu denjenigen der STL (hier std::list). Zwar kann es sehr sinnvoll sein, zur Übung und fürs Verständnis selbst solche Dinge zu programmieren. Aber sofern man nicht gleich etwas Exotisches braucht, das nicht bereits in der Standardbibliothek oder Boost vorhanden ist, lohnt sich eine Neu-Erfindung des Rads nicht.

C--

Alter Hase

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

7

02.01.2010, 23:07

Nach dem Thread-Title zu urteilen geht es hier um C und nicht um C++ ;)
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

8

02.01.2010, 23:34

Zitat von »"C--"«

Nach dem Thread-Title zu urteilen geht es hier um C und nicht um C++ ;)


Wenn wir schon bei C sind. Gibts da eigentlich eine Standardlibrary, die so Sachen, wie Listen, Algorithmen usw. implementiert?
Also dass es keine offizielle gibt ist mir schon klar, aber ich kann mir da kaum vorstellen, dass da jede Firma, die ein Projekt in C am laufen hat da eigene Sachen implementiert.. Vielleicht weiss da jemand, der beruflich C programmiert mehr?

C--

Alter Hase

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

9

02.01.2010, 23:44

@ drakon: gute Frage, darüber habe ich nie nachgedacht... aber interressante frage :)

EDIT: gut, ich glaube, dass auch öfter C++ an Stelle von C verwendet wird.
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

10

03.01.2010, 00:26

Argh, sorry. Hier wird so oft über C++ gepostet und so selten über C, da hab ich nicht mehr daran gedacht.

C-Datenstruktur-Libaries scheints ein paar zu geben, wenn man auf Google sucht. Allerdings habe ich auf die Schnelle keine gefunden, welche den Umfang der STL bietet.

Werbeanzeige