Global Array in einem Type nur umständlich zu definieren
Übersicht

![]() |
remaBetreff: Global Array in einem Type nur umständlich zu definieren |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sobald ein Array als klar definierte Grösse in einem Tyoe definiert wird, so bekomme ich vom Compiler eine Fehlermeldung.
Compiler Error Type global initializers must be constant Code: [AUSKLAPPEN] Type test Global x:Int[] ' ist ok Global y:Int[3] ' gibt diese Fehlermeldung Global z:Int[] = [0,0,0] ' gibt diese Fehlermeldung End Type Nun aber kann ich folgendes tun. Ein globales undefiniertes Array in einem Type definieren und von Aussen dieses Redimensionieren. Code: [AUSKLAPPEN] Type test
Global x:Int[] End Type test.x = New Int[3] ' funzt wunderbar test.x[0] = 10 test.x[1] = 20 test.x[2] = 30 DebugLog test.x[0] DebugLog test.x[1] DebugLog test.x[2] Nun meine Frage, ist dies nicht ein wenig buggi, oder denke ich da irgendwie falsch? |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja komisch...
Code: [AUSKLAPPEN] Type test
Global array:Int[] Method New() If array=Null Then array=array[..100] EndMethod Method Delete() array=Null EndMethod EndType Print "Adresse von array-inhalt: "+Int(Byte Ptr(test.array)) Print "Adresse von array-pointer?: "+Int(Varptr(test.array)) Print "Array Laenge: "+test.array.length So wie es aussieht darf nur ein "Pointer" in einem Type stehen. andernfalls würde man beim ändern der array-größe alle speicheradressen durcheinanderwirbeln... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Anmerkung: In der neuen kommenden Version sollen solche Konstante Initializer möglich sein, zumindest gemäss Aussage von Mark
Im moment wären sie eh ohne nutzen, denn ein Array den man mit a:type[3] deklariert muss man danach dennoch mit New nochmal befüllen, weil er mit null gefüllt wäre. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
rema |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für die Hilfe. Habe das Problem auch schon im eng. Forum nachgelesen.
Da muss Mark was am Compiler ändern. Hoffe dass das Update doch demnächst bald kommen sollte... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group