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

Thoran

Alter Hase

Beiträge: 520

Wohnort: Stuttgart

Beruf: Senior Software Engineer

  • Private Nachricht senden

11

21.08.2012, 09:24

Vergiss diesen Ratschlag, denn er ist Quatsch.

Ich bin mit deiner Aussage nicht einverstanden. Ich denke es ist besser seine Daten, sprich die Werte in den Variablen immer in einem definierten Zustand zu halten (z.B. gültiger Wert oder NULL). Das in Kombination mit ordentlichen Checks, ob während der Verarbeitung eine Variable gültige Werte enthält, finde ich besser als das Programm crashen zu lassen. Allerdings erfordert dies eine geiwsse Disziplin beim Programmieren, was unter Umständen bei einem Anfänger nicht unmittelbar gegeben ist, sondern langsam angelernt werden muß.

Thoran
Mein Entwicklertagebuch
Aktuelles Projekt: Universum Espionage
Eingestellt:Spieleengine SilverCore
Organisator "Spieleentwickler Stammtisch Stuttgart"

12

21.08.2012, 09:25

OK ich habe das Thema jetzt schon ein bisschen besser verstanden. Aber manche Antworten habe ich wirklich nicht richtig verstanden weil ich manche Wörter nicht kannte. Trotzdem danke an alle Antworten.

FSA

Community-Fossil

  • Private Nachricht senden

13

23.08.2012, 18:59

Zitat von »David«


...C++ sei ein Vitamin.

Made my day :D

@Frage und Antwort: Was hast du nicht verstanden? Frag nach! Dazu sind wir da. Um Sachen zu beantworten.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

rnlf

Frischling

Beiträge: 85

Beruf: Softwareingenieur Raumfahrt

  • Private Nachricht senden

14

24.08.2012, 08:14

Grade Anfänger sollten sich nicht mit manueller Speicherverwaltung beschäftigen. Um die verstehen zu können, braucht man erstmal ein gewisses Grundverständnis für's Programmieren. Und bei 99% aller Probleme, die man als Anfänger so hat braucht man sie einfach auch nicht.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

24.08.2012, 10:05

Wie soll man denn ein gewisses Grundverständnis erlangen, wenn man sich nicht mit Grundlagen wie z.B. dynamischer Speicherverwaltung beschäftigt!? ;)

rnlf

Frischling

Beiträge: 85

Beruf: Softwareingenieur Raumfahrt

  • Private Nachricht senden

16

24.08.2012, 11:11

Du weißt genau, wie es gemeint ist ;-)

Klar wird man sich früher oder später damit beschäftigen müssen. Aber am Anfang ist es wichtiger, die Programmierer-Denkweise zu lernen. Details wie Speicherverwaltung lenken da erstmal vom Hauptproblem ab...

17

24.08.2012, 15:52

OK also ich habe folgendes noch nicht verstanden: Warum sollte man eine bereits freigegebene speicherstelle erneut freigeben?

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

18

24.08.2012, 16:18

Das soll eben nicht passieren. Wenn man einen Fehler macht passiert das aber hin und wieder. ;)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

19

24.08.2012, 17:11

Und wenn ein Fehler in einer Software passiert, ist es meistens langfristig keine gute Sache den irgendwie zu kaschieren. Sprich, es ist tatsächlich besser, wenn dein Programm abstürzt anstatt die zweite Freigabe zu ignorieren. Denn sonst merkst du nicht, dass etwas nicht stimmt.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

Moe

Frischling

Beiträge: 85

Wohnort: München

  • Private Nachricht senden

20

25.08.2012, 01:05

Ich kann mich Thoran nur anschließen, ein gelöschter Zeiger gehört auf NULL gesetzt. Allerdings nicht, weil dann delete abstürtzt - tut es auch gar nicht, wenn es richtig implementiert ist, genauso wenig wie free -, aber man bekommt ihn bei falschen Zugriffen um die Ohren geworfen, d.h. das Programm stürtzt ab. Der Grund ist einfach: Wenn das Programm mit einem NULL-Zugriff abstürtzt, kann man das viel einfacher debuggen, als einen Zeiger, der auf eine Speicherstelle zeigt, die evtl. schon wieder im gleichen Programm neu vergeben wurde und der dann groben Unfug anstellt, der aber erst irgendwann später auffällt. (Warum hat sich der Wert geändert?)


Zitat

Klar wird man sich früher oder später damit beschäftigen müssen. Aber am
Anfang ist es wichtiger, die Programmierer-Denkweise zu lernen. Details
wie Speicherverwaltung lenken da erstmal vom Hauptproblem ab...
Genau das gehört doch dazu. Viele Probleme kann man nur effizient lösen, wenn man sich mit der Speicherverwaltung auskennt.

Zitat

Warum sollte man eine bereits freigegebene speicherstelle erneut freigeben?
Das kann bei komplexeren Programmen schonmal passieren, wenn eine Fehlerbehandlung direkt aufräumt und beim Beenden wird dann auch nochmal aufgeräumt. Hat man den Zeiger auf NULL gesetzt, ignorieren delete und free die Speicherfreigabe einfach und man kann sich lästiges Buchführen sparen, welche Zeiger noch gültig sind.

Werbeanzeige