Einzelnen Beitrag anzeigen

Cyberstorm

Registriert seit: 23. Okt 2003
159 Beiträge
 
Delphi 2010 Architect
 
#1

Typecasting Stacküberlauf <code inside>

  Alt 25. Nov 2010, 16:53
Delphi-Version: 2010
hallo. habe ich da etwas nicht verstanden? anscheinend...
wieso funktioniert button1 und bei button2 gibt es einen stacküberlauf?
müssten doch beides 4-byte im speicher sein?!


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  a: TRGBQuad;
  b: Cardinal;
begin
  a.rgbBlue:=0;
  a.rgbGreen:=0;
  a.rgbRed:=255;
  a.rgbReserved:=0;
  b:=Cardinal(a);
  ShowMessage(IntToStr(b));
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  a: TRGBQuad;
  b: array[1..640, 1..480] of Cardinal;
begin
  a.rgbBlue:=0;
  a.rgbGreen:=0;
  a.rgbRed:=255;
  a.rgbReserved:=0;
  b[1, 1]:=Cardinal(a);
  ShowMessage(IntToStr(b[1, 1]));
end;
danke + grüße

Geändert von mkinzler (25. Nov 2010 um 17:30 Uhr) Grund: Code-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat