Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Ich habe mir angewöhnt Pointer, nachdem sie nichtmehr genutzt werden (zB weil der Speicher freigegeben wurde) direkt auf Null zu setzen.
Und da man jeden Pointer vor Gebrauch wenigstens darauf prüfen sollte, ob er überhaupt irgendwo hin zeigt, kann man so schon viele Fehler finden/verhindern.
Wenn man prüfen muss, ob ein Pointer brauchbar sein könnte, hat man meiner Meinung nach wahrscheinlich irgendwo etwas unsauber gearbeitet.
Entweder man prüft, ob die Zuweisung geklappt hat, oder nicht. Zwischendinger würde ich nicht machen.
> Ich habe mir angewöhnt Pointer, nachdem sie nichtmehr genutzt werden (zB weil der Speicher freigegeben wurde) direkt auf Null zu setzen.
Mach ich auch so. In eigenen Programmen verwende ich sowas auch nicht, nur bei DLLs von 3. prüf ich schon mal ob ich nen gültigen Pointer kriege oder ob die DLL Mist baut.
Sind bereits Funktionen die dazu gedacht sind zu prüfen ob der Pointer gültig zu sein scheint.
[EDIT]
Euh dumme Links.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
edel hat geschrieben:Da steht aber auch das man sie nicht nutzen soll.
Klar . Da hab ich auch nichts anderes behauptet.
Was man vielleicht mal versuchen könnte wär ein aktives Garbage-Collector System für PureBasic. Als Precompiler wie bei den OOP dingern oder wie bei remi_meiers Profiler.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.