Einzelnen Beitrag anzeigen

Benmik

Registriert seit: 11. Apr 2009
543 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TStream.ReadBuffer schlägt fehl

  Alt 7. Apr 2022, 16:56
Hab ich jetzt nicht verstanden. Meinst du, das von David Heffernan angesprochene Non-Alignment-Problem ist auch hier die Ursache? Emba legt den Puffer mit einem simplen SetLength an. Heißt das, dass der Puffer dann nicht notwendigerweise ausgerichtet ist und dass Emba sich darum nicht kümmert? Selbst wenn - wieso kommt dann ein negatives Ergebnis heraus?

EDIT: Ich habe nun den Test gemacht, den Speicher selbst zu reservieren, und zwar mit
Delphi-Quellcode:
var TB:TBytes;
begin
SetLength(TB, 4778259 * 512);
Und siehe da, Delphi meldet Overflow. Aber wieso? Selbst nach diesem Beitrag von 2009 müsste die Obergrenze 2 * LongInt sein, was hier ja nicht überschritten wird (und was nicht berücksichtigt, dass LongInt unter 64-Bit Int64 sein sollte).

Geändert von Benmik ( 7. Apr 2022 um 17:18 Uhr)
  Mit Zitat antworten Zitat