![]() |
Position im 2D-Array
Morgen!
Wie kann ich in einem zweidimensionalen array die Position eines Wertes ohne die beiden Indizes angeben? Gruß, Borti |
Re: Position im 2D-Array
Meines Erachtens kannst du das in Delphi nur auf diese eine Art und Weise, wie du schon gesagt hast.
Was für eine Lösung hättest du denn gerne? Man kann sicherlich für jedes Problem eine andere Art der Programmierung verwenden! |
Re: Position im 2D-Array
Ich hätte da an so was wie einen Pointer gedacht, den man auf die entsprechende Position im Array richtet.
|
Re: Position im 2D-Array
Zitat:
Delphi-Quellcode:
zu nehmen und die Position entsprechend zu ändern ( zBsp: durch ausprobieren)? Wenn P: PChar kannst Du sogar den Offset addieren!
P := @Array[0,0];
|
Re: Position im 2D-Array
Wahrscheinlich liegt's daran, dass ich bisher nie mit Pointern gearbeitet habe. Daher muss ich mich hier entschuldigen.
Was mach ich, wenn ich einen Zeiger auf eine Position errichtet habe, ich aber auch noch die nächste höhere position auslesen will? Kann ich dann zum Zeiger einfach was dazu addieren?
Code:
Gruß,
var
a:array[1..2] of array[1..2] of real; P:^real; Ergebnis1,Ergebnis2:real; begin a[1][1]:=50.1; a[1][2]:=50.2; a[2][1]:=50.3; a[2][2]:=50.4; P:=@a[2][1]; Ergebnis1:=P^; Ergenbnis2:=????? end; Pollux |
Re: Position im 2D-Array
(a) Tipp: beginne die Indize bei 0, spart viel Ärger bei dynamischen Array's
(b)
Delphi-Quellcode:
(c) Wozu soll dies gut sein, der Compiler macht das mit den Array's eigentlich recht effektiv?
type
TMyArray= array[0..1,0..1] of real; PReal = ^Real; var A: TMyArray; Pr: ^real; I: Integer; begin A[0,0]:=50.1; A[0,1]:=50.2; A[1,0]:=50.3; A[1,1]:=50.4; Pr := @A[0,0]; for I := 0 to 3 do begin Memo1.Lines.Add (FloatToStr(Pr^)); Inc (Pr); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 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 by Thomas Breitkreuz