Arraybereich durch Variable bestimmen

boggle

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,

ich habe mir ein Array erstellt :

W: ARRAY [0 .. 19] OF Wagen;

Ich würde aber gerne die 19 durch eine Variable ersetzen.
Wenn ich aber z.b. 'WagenMax' deklariere und da eine 19 reinschreibe geht das nicht. also so:

W: ARRAY [0 .. WagenMax] OF Wagen;

Dann kommt folgender Fehlercode:

Fehler 3750: Globale_Variablen(4): Obergrenzen 'WAGENMAX' unbekannt


Vielleicht weiß da ja jemand eine Lösung :)

Danke. Gruß
Boggle
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok. Das habe ich gemacht.
Aber es geht trotzdem nicht.

Wo muss ich den Code einfügen? Globale Variablen? Main?

Das sind meine Globalen Variablen:
Code:
VAR_GLOBAL

(* Struktur "Wagen" *)
	W: ARRAY [0 .. WagenMax] OF Wagen;

	WagenAnzahl: INT := 20;	(* Anzahl der Wagen *)
END_VAR

Und ich berechne in der Main mein WagenMax:
Code:
WagenMax := WagenAnzahl - 1;
 
Du fügst in den globalen Variablen nach dem "VAR_GLOBAL"-Block noch den folgenden Block ein:

Code:
VAR_GLOBAL CONSTANT
    WagenMax: INT := 19;
END_VAR

Das Problem ist nur, dass du diese Variable nicht verändern kannst. Sie ist konstant. Das Array hat in dem Fall also immer 20 Einträge. Mir ist aber auch keine Möglichkeit bekannt wie ich ein variables Array anlegen könnte.
 
Dynamischer Speicher

Hi,

Mir kam gerade noch eine Idee wie du deinen dynamischen Speicher organisieren könntest. Du könntest es mit einer verketteten Liste realisieren. Inwieweit das für dich sinnvoll ist bzw. ob sich der Aufwand lohnt, musst du selber entscheiden.

Gruß Cerberus
 
Zurück
Oben