Short Array geht nicht

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

Lador

Betreff: Short Array geht nicht

BeitragDi, Apr 29, 2008 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.
Ich mache gerade einen Mapeditor für einen Freund. Und dann wollte ich eine Neu-Funktion einbauen. Wollte das erst auf umständliche Weise machen, aber als ich in der BlitzMax-Hilfe nach einem Befehl suchte, fand ich zufällig einen Artikel über "Arrays" (Language reference -> Arrays). Dort steht, dass man eine leeres Array anlegen und dann neu erstellen kann. Bei mir sieht das so aus:

Code: [AUSKLAPPEN]

...
Global mapwidth = 80, mapheight = 60
Global map:Short[]

...
map = New Short[mapbreite,maphoehe,4]
...


Jetzt kommt bei mir die Fehlermeldung " Unable to convert from 'short array' to 'short array' ". Habe ich den Artikel nur nicht ganz verstanden, oder ist das ein Bug von BlitzMax?

MFG Lador

kog

BeitragDi, Apr 29, 2008 15:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
...
Global mapwidth = 80, mapheight = 60
Global map:Short[,,]

...
map = New Short[mapbreite,maphoehe,4]
...


so sollte es richtig sein.
Du musst mit Kommas die Dimensionen definieren, auch wenn 0 0 0 ist.
Hoffe es geht
 

Lador

BeitragDi, Apr 29, 2008 15:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein geht leider nicht. "Attempt to index array element beyond array length". Wahrscheinlich sieht der Compiler es als 0,0,0.

MFG Lador

kog

BeitragDi, Apr 29, 2008 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn du das New Short machst, oder wenn du daten einfügst?
 

#Reaper

Newsposter

Betreff: Re: Short Array geht nicht

BeitragDi, Apr 29, 2008 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Lador hat Folgendes geschrieben:
Code: [AUSKLAPPEN]

...
Global mapwidth = 80, mapheight = 60
...
map = New Short[mapbreite,maphoehe,4]
...


Was fällt dir an deinen Variablen mapwidth und mapheight auf? Laughing
Ich möchte dich nicht zappeln lassen, aber bei New ... verwendest du dann aufeinmal mapbreite und maphoehe. Ich glaube so war das nicht gedacht, oder? Wink
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

kog

BeitragDi, Apr 29, 2008 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
LOL ^^ den fehler habe ich übersehen, das ist grantiert der.
Arbeitest du nicht mit SuperStrict?
 

Lador

BeitragMi, Apr 30, 2008 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.
Zuerst einmal danke für alle Antworten. Jetzt funktioniert es. Hatte diese Zeile vorher in einer Funktion, daher hatte ich mapbreite und maphoehe. Und ich habe die Zeile einfach herauskopiert...

Was genau bringt denn SuperStrict? Ich habe mir gerade die Hilfe zu Strict angesehen. Ist das dann für das bessere Fehlerfinden?

Naja, wenigstens war ich nicht der einzige, der den Fehler übersehen hat.^^

MFG Lador

BladeRunner

Moderator

BeitragMi, Apr 30, 2008 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
strict als auch superstrict zwingen dich zum sauberen arbeiten.
Unter superstrict wird bmax jede variable mokieren die du nicht ausdrücklich samt scope definiert hast,

Probier es aus:
Code: [AUSKLAPPEN]

'superstrict
local test:int= 345
test2:int = 456
tast = 678

print test

führ den code mit und ohne superstrict aus, und du wirst sehen dass nur korrekt initialisierte Variablen durchgehen. Damit kann man bugs durch Verschreiber wie den deinen idR ausschliessen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group