Thread stringified Symboltabellen-Zugriff
(13 answers)
Opened by lichtkind at 2014-02-12 02:11
Das wäre schon schlimm: Es ist möglich, dass an einer Speicheradresse Daten stehen, die so aussehen als würden sie eine Perlvariable beschreiben, die aber eigentlich nur Müll sind. Zum Beispiel ist es sogar ziemlich wahrscheinlich, dass kurz nach der "Zerstörung" eines Objektes, dieses noch im Wesentlichen unverändert im Speicher liegt und aussieht als wäre es noch gültig.
Speicherzugriffsfehler entstehen nur beim Zugriff auf ungültige Adressen, was im ersten Schritt beim Dereferenzieren einer vormals gültigen Adresse praktisch nie passieren dürfte, weil Allokatoren selten oder gar nicht Speicherblöcke ans System zurückgeben. In einem folgenden Schritt beim Dereferenzieren weiterer Zeiger aus einem ungültigen Objekt heraus wird schon eher ein Zugriffsfehler entstehen, was dann aber ein schlecht zu diagnostizierender, indirekter Effekt ist. Und selbst wenn die Behandlung von Speicherzugriffsfehlern aus Perl heraus sinnvoll machbar wäre, was ich noch zu bezweifeln wage, so wäre die Chance groß, dass der Inhalt benutzter Speicherblöcke beschädigt wird, bevor so ein Fehler auftritt. Langer Rede kurzer Sinn: Numerische Adressen in Zeiger zu wandeln ist eine dumme Idee, wenn man nicht bereits ganz genau weiß, dass die Adresse gültig ist. When C++ is your hammer, every problem looks like your thumb.
|