Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zugriffsverletzung (https://www.delphipraxis.net/172385-zugriffsverletzung.html)

Sailor 30. Dez 2012 19:51

Zugriffsverletzung
 
Folgendes Problem:
Delphi-Quellcode:
VAR
 bin_data: PByteArray; // Size 89967
        p: Byte

 p := bin_data[Origin]; // Origin > 32767, Rangechecking ein
Diese Zeile ergibt BoundsError.

Im CPU-Fenster steht
Code:
[SIZE="10"]LoadTables.665: p := bin_data[Origin]
00584099 8B45B8      mov eax,[ebp-$48]
0058409C 8B00        mov eax,[eax]
0058409E 3DFF7F0000  cmp eax,$00007fff // Vergleich auf 32767!!!
005840A3 7605        jbe $005840aa
005840A5 E8E200E8FF  call @BoundErr[/SIZE]
Ist diese Einschränkung auf 32k-1 irgendwo dokumentiert?

Hansa 30. Dez 2012 20:05

AW: Zugriffsverletzung
 
Zitat:

Zitat von Sailor (Beitrag 1197197)
Ist diese Einschränkung auf 32k-1 irgendwo dokumentiert?

Ja, in der Hilfe. :shock:

Für Faulenzer : type TByteArray = array [0..32767] of Byte;

Sailor 30. Dez 2012 21:48

AW: Zugriffsverletzung
 
Sorry, in meiner Hilfdatei (D2005) steht dazu:
"PByteArray TByteArray (declared in SysUtils). Used to typecast dynamically allocated memory for array access."

jaenicke 30. Dez 2012 22:12

AW: Zugriffsverletzung
 
Sinnvoll ist auch ein Blick in die aktuelle Hilfe:
http://docwiki.embarcadero.com/Libra...ils.PByteArray
Zitat:

Der Typ PByteArray deklariert einen Zeiger auf ein TByteArray (ein statisches Byte-Array). Die Array-Größe beträgt 32.768 (2**15) Elemente.

p80286 30. Dez 2012 22:49

AW: Zugriffsverletzung
 
Zitat:

Zitat von Sailor (Beitrag 1197204)
Sorry, in meiner Hilfdatei (D2005) steht dazu:
"PByteArray TByteArray (declared in SysUtils). Used to typecast dynamically allocated memory for array access."

So steht es auch in D2006, schau doch in den Sysutils-Sourcen nach.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz