AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Ich und die Pointer... die nicht so wollen wie ich
Thema durchsuchen
Ansicht
Themen-Optionen

Ich und die Pointer... die nicht so wollen wie ich

Ein Thema von turboPASCAL · begonnen am 20. Sep 2007 · letzter Beitrag vom 21. Sep 2007
 
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#6

Re: Ich und die Pointer... die nicht so wollen wie ich

  Alt 20. Sep 2007, 21:34
Delphi-Quellcode:
// 1.
type
  TByteArray = array of Byte;

// 2.
  PByteArray = ^TByteArray;

// 3.
type
  TByteArray = array[MaxInt] of Byte;
  PByteArray = ^TByteArray;
beide Typdeklarationen definieren was komplett Anderes. Das 1. ist ein dynamsiches Array of Bytes. Dieses ist ein komplexer Datentyp der zwar ein Array darstellt aber intern ein Zeiger auf einen Record der ein Array enthält darstellt. Der Typ bei 2. definert also wenn man es so will einen Zeiger auf einen Zeiger.

Der Typ bei 3. ist ein Array auf Bytes mit fester Größe. Erst durch den Typ PByteArray der auf ^TByteArray referenziert ist ein Zeigertyp direkt in einen Speicherbereich der als Byte Array interpretiert werden soll. Dies ist die alte Schreibweise in der man dann auch explizit solche Speicherbereiche allozieren und deallozieren muß. Das sollte erfolgen mit GetMem() und FreeMem() aber nicht mit New() und Dispose(). Die letzeren beiden hat man verwendet um komplexere Datentypen zu allozieren/deallozieren, zb. Records oder Objekte ganz alten Typus.

Du vermischt also in deinem Code zwei komplett unterschiedliche Datentypen mit den falschen Methoden und Zugriffen darauf.
Dieses Wirrwarr entstand durch die Evolution der Delphi/PASCAL Sprache mit der Zeit.

Gruß Hagen
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 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