Zeigergefahren
-
Hi Leute,
ich habe mich vor kurzem mit Zeigern beschäftigt und habe gelesen, dass Zeiger ziemlich gefährlich werden können. Kann damit wirklich die Hardware geschädigt werden? Wäre cool, wenn ihr mir mal ein paar Gefahren auflisten könntet.
MfG René
-
Theoretisch kann alles kaputt gehen, praktisch natürlich nichts.
-
Theoretisch passiert viel
Hast du unter der Haube ein modernes Betriebssystem passiert dir im schlimmsten Fall ein Programmabsturz.MfG SideWinder
-
SideWinder schrieb:
Hast du unter der Haube ein modernes Betriebssystem passiert dir im schlimmsten Fall ein Programmabsturz.
Das passiert im besten Falle. Im schlimmsten veränderst du irgendwelche anderen eigenen Variablen und merkst nicht, dass du falsche Ergebnisse bekommst.
-
Bashar schrieb:
SideWinder schrieb:
Hast du unter der Haube ein modernes Betriebssystem passiert dir im schlimmsten Fall ein Programmabsturz.
Das passiert im besten Falle. Im schlimmsten veränderst du irgendwelche anderen eigenen Variablen und merkst nicht, dass du falsche Ergebnisse bekommst.
Natürlich, allerdings erkennt das ein moderner Compiler im Debug-Modus wenn du Speicher überschreibst der nicht dir gehört

MfG SideWinder
-
DAAAAAAAAAAAAAAAAAAAAAAMALS
hatte man zb ein array. zb int i[45]. wenn mann nun (damaaaaaaaaaals) i[50] gesagt hat, und man glück hatte, hatte man vllt den eintrag geändert wo die farben auf dem bildschirm gespeichert waren und man hatte in rotes bild etc.also das erzählen unsere lehrer immer

-
Wenn du viel Glück hast, änderst du damit einen Wert, der gerade von niemandem verwendet wird. Wenn du Pech hast, steht an dieser Adresse z.B. eine Zählvariable deiner Funktion oder ein Datenelement eines Objekts - was dann weiter passiert, hängt ganz davon ab, was dort drin stand und wozu es gebraucht wurde.
Aber theoretisch ist da alles möglich ("undefined behaviour" bedeutet, das ALLES passieren kann, von Programmabsturz bis hin zur totalen Zerstörung deines PC's).
-
Über die Strasse gehen kann auch gefährlich sein. Geh ich deshalb nicht mehr über eine Strasse? Nein! Ich schaue mich vorher um, bin also vorsichtig.
So muß man auch bei Zeigern handeln, und gut ist.
-
SideWinder schrieb:
Im schlimmsten veränderst du irgendwelche anderen eigenen Variablen und merkst nicht, dass du falsche Ergebnisse bekommst.
Natürlich, allerdings erkennt das ein moderner Compiler im Debug-Modus wenn du Speicher überschreibst der nicht dir gehört :)[/quote]
Der Speicher gehört dir ja.