Guten Morgen,
Ich höre ja gerade eine Vorlesung über Konzepte von Programmiersprachen.
Und unser Prof zeigt uns immer mal wieder echt "Überraschende" dinge.
Das Konstanten keine Konstanten sind hatte ich ja auch schon mal geschrieben.
Heute zeige ich euch wie man Schleifenvariablen werte zuweisen kann.
Ja richtig gelesen, das geht. Obwohl es eigentlich nicht erlaubt ist.
Und wie auch schon bei den Konstanten lautet der Trick hier wieder , POINTER.
Es scheint als habe Delphi ( zumindest D5Pro ) keinerlei Pointer Optimierung, bzw. Pointer Prüfungen.
Folgender Code ist in D5 Legal und sorgt für eine Endlosschleife.
Testet doch bitte in euren D5 versionen ob der Code Legal ist und ob das selbe passiert
.
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Var
x: Integer;
p: ^integer;
Begin
p := @x;
For x := 0 To 3 Do Begin
showmessage(inttostr(x));
p^ := 1;
End;
End;
Also aufgepasst. Jeder der sich ein Programm schreibt das Pointer benutzt. Eure schleifen könnten evtl. ewig laufen *g*