Hallo Leute,
habe einen Code wie diesen (bisschen mehr/ bisschen sinnvoller
):
Delphi-Quellcode:
type PWord = ^word;
TdynArray = class
constructor create(size: cardinal);
destructor destroy; override;
private
size: cardinal;
data: PWord;
public
function getWord(index: cardinal): word;
end;
constructor TdynArray.create(size: cardinal);
begin
inherited create;
getMem(data, size);
end;
destructor TdynArray.destroy;
begin
freeMem(data, size);
inherited;
end;
function TdynArray.getWord(index: cardinal): word;
begin
result := PByte(cardinal(data)+(index shl 1))^; // <= hier ist der böse Code
end;
Der besagte Teil macht mir Bauchschmerzen, da ich einen Zeiger in einen Cardinal caste
funktioniert, sieht aber nicht so schick aus und ich weiß nicht, was auf 64-Bit-Maschinen passieren würde
Kennt ihr eine Alternative?
MfG,
Bug
PS: Dynamische Array kommen nicht in Frage, bei Delphi 3 gibt es solchen Luxus noch nicht