AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Dyn. Array of Double an funktion übergeben

Ein Thema von wendelin · begonnen am 22. Mär 2021 · letzter Beitrag vom 25. Mär 2021
Antwort Antwort
Seite 3 von 3     123
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#21

AW: Dyn. Array of Double an funktion übergeben

  Alt 24. Mär 2021, 23:39
TestArray[1..2]: Array of Byte;
...
WriteLn(TestArray[0]);

kann das funktionieren?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
709 Beiträge
 
Delphi XE5 Professional
 
#22

AW: Dyn. Array of Double an funktion übergeben

  Alt 25. Mär 2021, 00:09
Hallo Stefan,
mit "Gefahr" habe ich folgende Situation gemeint:
Delphi-Quellcode:
program Offene_Array_Parameter_1;
{$APPTYPE CONSOLE}
{$R *.res}
Procedure Print_Vektor(CONST Vektor: Array of Integer; Name: String); overload;
VAR
  Zeile: Integer;

Begin
  WriteLn(Name, ':');
  For Zeile:= Low(Vektor) To High(Vektor) Do
  Begin
    WriteLn('Vektor[', Zeile,'] = ', Vektor[Zeile]);
  End;
  WriteLn;
End;

Procedure Print_Vektor(CONST Vektor: Array of Integer; Zeile: Integer; Name: String); overload;

Begin
  WriteLn(Name, ':');
  WriteLn('Vektor[', Zeile,'] = ', Vektor[Zeile]);
  WriteLn;
End;

CONST
  Len = 8;

VAR
  Statischer_Vektor : Array[1..Len] of Integer;
  Dynamischer_Vektor: Array of Integer;

  i, Pos: Integer;
  
Begin
    SetLength(Dynamischer_Vektor, Len);

    Try
      For i:= Low(Dynamischer_Vektor) To High(Dynamischer_Vektor) Do
      Begin
        Dynamischer_Vektor[i]:= i;
      End;

      For i:= 1 To Len Do
      Begin
        Statischer_Vektor[i]:= i;
      End;
            
      Print_Vektor(Dynamischer_Vektor, 'Dynamischer_Vektor');
      Print_Vektor(Statischer_Vektor, 'Statischer_Vektor');
      WriteLn;
      
      Pos:= 2;
      WriteLn(Pos, '-tes Element durcken:');
      WriteLn;
      
      Print_Vektor(Dynamischer_Vektor, Pos, 'Dynamischer_Vektor');
      Print_Vektor(Statischer_Vektor, Pos, 'Statischer_Vektor --> FALSCH');
      
      ReadLn;
    
    Finally
      Dynamischer_Vektor:= NIL;
    End;
  End.
Gruß, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.006 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#23

AW: Dyn. Array of Double an funktion übergeben

  Alt 25. Mär 2021, 00:56
TestArray[1..2]: Array of Byte;
...
WriteLn(TestArray[0]);

kann das funktionieren?
Die Rede ist von open array parametern und nicht von statischen arrays - logisch, dass das da out of bounds ist - war das ne Fangfrage?

mit "Gefahr" habe ich folgende Situation gemeint
Den base index einer Range vermischen ist immer eine Gefahr - ändert aber nix daran, dass open array zero based ist.
Wenn ich also von einer Funktion, die ein open array entgegen nimmt, einen Index für ein übergebenes n-based array geliefert bekomme, oder übergebe, muss ich da zwischen 0 und n umrechnen, da ändert auch nen Low/High innerhalb der Funktion nix.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (25. Mär 2021 um 01:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#24

AW: Dyn. Array of Double an funktion übergeben

  Alt 25. Mär 2021, 01:59
TestArray[1..2]: Array of Byte;
...
WriteLn(TestArray[0]);

kann das funktionieren?
Die Rede ist von open array parametern und nicht von statischen arrays - logisch, dass das da out of bounds ist - war das ne Fangfrage?
Ist nicht out of bound, ist schlichtweg völlig verkehrte Syntax.
Es würde nicht mal ansatzweise funktionieren da ich die Klammern verkehrt gesetzt hab, hätte als Antwort kommen müssen.
Aber ja ich weiß was Du meintest obwohl ich nen dynamisches array abgebildet habe.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.006 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#25

AW: Dyn. Array of Double an funktion übergeben

  Alt 25. Mär 2021, 02:25
ist schlichtweg völlig verkehrte Syntax.
Hab schon Autokorrektur beim Lesen, da so viele Leute defekten Pseudocode schreiben.
Offensichtlich funktioniert die auch nicht fehlerfrei.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
709 Beiträge
 
Delphi XE5 Professional
 
#26

AW: Dyn. Array of Double an funktion übergeben

  Alt 25. Mär 2021, 09:31
Hi Stefan,
mit "Gefahr" habe ich ganz konkret gemeint: Finger weg von "Open Array-Parametern", sondern den Array-Type immer explizit deklarieren, damit gar nicht so ein Chaos entstehen kann.
Gruß, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz