Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - dynamischer Record
kw16 - Fr 18.03.05 23:00
Titel: dynamischer Record
Hi,
ich will einen Record definieren, dessen Grösse jedoch erst zur Laufzeit festgelegt wird. Die Struktur sollte so aussehen:
Quelltext
1: 2: 3: 4: 5: 6:
| type TEingabevektor = record Eingabewerte: array of longint; Ausgabewert: extended; end; TEingabevektoren = array of TEingabevektor; |
Man könnte natürlich auch einen Array mit Anzahl Eingabewerte + 1 erzeugen, das ist jedoch weniger gut lesbar, deshalb der Record.
Gibt es eine Lösung ohne Zeigern um den benötigten Speicher zu alloziiren ?
delfiphan - Fr 18.03.05 23:23
Deine Lösung funktioniert doch bereits :?:
kw16 - Fr 18.03.05 23:45
hmm,
also:
setlength(Eingabevektor.Eingabewerte,Anzahl_Eingabewerte_je_Eingabevektor+1); ?
und für den Ausgabwert muss man nicht explizit Speicher zuordnen ?
delfiphan - Fr 18.03.05 23:50
Mit SetLength wird der Speicher bereits alloziert.
PS: Dynamische Arrays sind Reference-counted, du musst den Speicher am Schluss nicht mal selbst freigeben. Wenn du das Array explizit löschen willst, weisst du einfach nil zu. Sieht fahrlässig aus, ist es aber nicht.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!