Hallo.
Kann man mit Arrays in Strukturen ReDim machen? (Wenn ja: wie? Wenn nein: wie würde ein workaround aussehen?)
Andere Sachen, wie ArraySize() oder CopyArray() wären ja nicht so schwer, aber bei ReDim muss ich echt passen.
ReDim mit Struktur-Arrays
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
ReDim mit Struktur-Arrays
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Re: ReDim mit Struktur-Arrays
klar geht das, da ja das Array nicht in der Strukture drin ist sonden außerhalb:
Code: Alles auswählen
Structure Test
Long.l
String.s
Array Feld.i(100)
EndStructure
Debug SizeOf(Test)
Variable.Test
Debug SizeOf(Variable)
Debug ArraySize(Variable\Feld())
ReDim Variable\Feld(10000)
Debug SizeOf(Variable)
Debug ArraySize(Variable\Feld())
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Re: ReDim mit Struktur-Arrays
Ach ja, PB-Arrays funzen ja auch in Strukturen. Ich bin bisher immer nur die C-Style Arrays (ArrName[n]) in Strukturen gewohnt, aber scheinbar gibt's da keinen (großen) Unterschied. (Laut Hilfe machen C-Arrays "direkte API Strukturen Portierung möglich". Auch mit Bindestrichen würde ich nicht wissen, was das heißt)
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Re: ReDim mit Struktur-Arrays
ein fix-Array mit den [ ] kann man nur mit hilfe von selbst erstellten Memory vergrößern:
Am anfang einfach n 0-Array erstellen:
und dann mit AllocateMemory je nach bedarf speicher anlegen. Das Array muss dann aber am ende sein, damit man nix überschreibt:
Am anfang einfach n 0-Array erstellen:
Code: Alles auswählen
Structure Test
Long.l
String.s
Field.i[0] ; 0 damit der Debugger nicht meckert, das man außerhalb des Bereichs kommt.
EndStructure
Debug SizeOf(Test)
Code: Alles auswählen
*Test.Test = AllocateMemory(SizeOf(Test)+SizeOf(Integer)*10) ; 10 Integer-Felder (also 0 - 9)
*Test\Field[9] = 123
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr