![]() |
Pointer als übergabeparameter bei Prozedurendeklaration
hallo, Herrschaften!
Warum lässt Delphi sowas nicht kompilieren? procedure CopyBoolArray( ^Source, ^Target: boolean; nElements: integer); Übrigens, so geht es auch nicht: procedure CopyBoolArray( Source, Target: ^boolean; nElements: integer); Was ist falsch mit dieser Deklaration? Vielen Dank! |
Re: Pointer als übergabeparameter bei Prozedurendeklaration
Moin Virchov,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. Also ich würde es so machen:
Delphi-Quellcode:
type
PBoolean = ^Boolean; procedure CopyBoolArray( ApSource, ApTarget: PBoolean; AnElements: integer); |
Re: Pointer als übergabeparameter bei Prozedurendeklaration
Danke, Chris, scheint jeklappt zu haben!
ps auch herzlichen Dank für den Gruß :-) Virchow |
Re: Pointer als übergabeparameter bei Prozedurendeklaration
Zitat:
(zudem gibt es keinen Array-Operator wie in C++) Was Du suchst, könnte so aussehen:
Delphi-Quellcode:
type
PBooleanArray = ^TBooleanArray; TBooleanArray = array [0..High(Integer) - 1] of Boolean; procedure CopyBoolArray(Source, Target: PBooleanArray; nElements: Integer); |
Re: Pointer als übergabeparameter bei Prozedurendeklaration
Hallo, Nico!
Genau das mache ich - Übersetzen aus C++ ins Delphi! Und im Urquell (c++) sieht das folgendermaßen aus: void CopyBoolArray( bool* Source, bool* Target, int nElements ); Vielleicht, macht es dann überhaupt keinen Sinn, die Zeiger auf Booleans im Delphi zu verwenden (bei Funktionsdeklarationen) ? Andererseits, soll ich alles möglichst genau übersetzen... Danke! Virchov |
Re: Pointer als übergabeparameter bei Prozedurendeklaration
Zitat:
Die 'wörtliche' Übersetzung hat Christian bereits aufgeführt. Die Variante mit PBooleanArray würde nur den Umgang auf Seiten von Delphi (mit den Arrays dynamischer Länge) erleichtern. Zudem kommt es (wenn es um die Kommunikation mit C/C++ geht) darauf an, welche Größe 'bool' hat. Es könnte also mit Boolean (1 Byte) oder LongBool (4 Byte) übersetzt werden! |
Re: Pointer als übergabeparameter bei Prozedurendeklaration
Klar. Was ich nicht verstehe, warum der Compiler das hier nicht frisst?
Auch keine Möglichkeit der Inline-Deklaration von Arrays in Delphi? procedure jacobi3x3(a: array [1..3, 1..3] of double; d: array [1..3] of double; v: array [1..3,1..3] of double]); Virchov |
Re: Pointer als übergabeparameter bei Prozedurendeklaration
Moin Virchov,
Zitat:
|
Re: Pointer als übergabeparameter bei Prozedurendeklaration
Könnte so aussehen:
Delphi-Quellcode:
Wobei ich bei C++ eher von [0..2] ausgehen würde (type[3] -> array [0..2] of type).
type
PVector3 = ^TVector3; TVector3 = array [1..3] of Double; PMatrix33 = ^TMatrix33; TMatrix33 = array [1..3] of TVector3; procedure jacobi3x3(var a: TMatrix33; var d: TVector3; var v: TMatrix33); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:53 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