AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

halbdynamische Arrays

Ein Thema von Ginko · begonnen am 6. Feb 2009 · letzter Beitrag vom 7. Feb 2009
Antwort Antwort
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#1

halbdynamische Arrays

  Alt 6. Feb 2009, 19:42
Hallo, ist es möglich ein zweidimensionales Array derart anzulegen, dass zum Beispiel
der X-Wert konstant und der Y-Wert dynamisch ist? also zum Beispiel so:
 THalbDyn = array[0..2] of array of integer; Ich habe es so gemacht, bekomme aber immer Fehler, wenn ich versuche auf
HalbDyn[1,(0-gesetzte Länge)] zuzugreifen.
Die Länge habe ich so gesetzt setlength(HalbDyn[0],y);
Ansonsten scheint es aber zu klappen, vielleicht habe ich auch irgendwo anders einen Fehler gemacht...
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: halbdynamische Arrays

  Alt 6. Feb 2009, 19:43
HalbDyn[1][0-gesetzte Länge]
  Mit Zitat antworten Zitat
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: halbdynamische Arrays

  Alt 6. Feb 2009, 19:56
oder ganz einfach so:

Delphi-Quellcode:
var HalbDyn: array of array of integer;
begin
  SetLength(HalbDyn, 3, laenge);
end;
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#4

Re: halbdynamische Arrays

  Alt 6. Feb 2009, 20:08
Zitat von Ginko:
HalbDyn[1,(0-gesetzte Länge)]
[...]
setlength(HalbDyn[0],y);
Florian Heft
  Mit Zitat antworten Zitat
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: halbdynamische Arrays

  Alt 6. Feb 2009, 20:15
Zitat von Florian H:
Zitat von Ginko:
HalbDyn[1,(0-gesetzte Länge)]
[...]
setlength(HalbDyn[0],y);
mit
setlength(HalbDyn[0],y);
hast du quasi nur die erste (bzw. 0. in Delphi-Numerierung) Zeile auf die gewünschte Länge gebracht.
danach willst du aber auf die zweite (bzw. 1.) Zeile zugreifen. Da ist aber noch nichts reserviert.
ich nehme mal an, dass du alle Zeilen gleich lang haben willst, oder?
dann solltest du sie auch gemeinsam setzen!
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#6

Re: halbdynamische Arrays

  Alt 6. Feb 2009, 20:33
Zitat von Ginko:
Ich habe es so gemacht, bekomme aber immer Fehler, wenn ich versuche auf
HalbDyn[1,(0-gesetzte Länge)] zuzugreifen.
Du darfst nur bis gesetzte Länge - 1 indizieren.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: halbdynamische Arrays

  Alt 6. Feb 2009, 20:39
Und genau deshalb empfiehlt es sich immer, Low() und High() zu verwenden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#8

Re: halbdynamische Arrays

  Alt 7. Feb 2009, 15:04
Ich hab's dann doch auf die einfache Art gemacht. Danke Euch!!
Also so
Delphi-Quellcode:
var HalbDyn: array of array of integer;
begin
  SetLength(HalbDyn, 3, laenge);
end;
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:11 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