Array an eine Function übergeben

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

PicHunter

Betreff: Array an eine Function übergeben

BeitragMi, Sep 12, 2007 11:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab nix dergleichen per suche gefunden... wobei ich mir das garnicht vorstellen kann

Folgendes Problem:
Ich möchte einer Function ein Array übergeben, von dem ich anfangs noch nicht weis wie groß es wird.
Jedoch scheinen arrays an dieser stelle überhauptnicht erlaubt zu sein... oder irre ich?

Code: [AUSKLAPPEN]

Function DrawArray(_dimX:Int, _dimY:Int, _map:Int[_dimX,_dimY])
   For j=0 To (_dimY -1)
   For i=0 To (_dimX -1)
      DrawText _map(i,j),10+(10*i),10+(10*j)
   Next
   Next
End Function


Abgesehen davon das "_map:Int[_dimX,_dimY]" durch die _dimX und _dimY garnicht gehen kann.

Ohm... ja, jedenfalls kommt follgende fehlermeldung:
"Compile Error
Expecting ')' but encountered '['"
in der Zeile Function DrawArray .......

jetzt die Frage.
Wie Sag ich der Function das sie ein array von Integer übergeben bekommt?

FOODy

BeitragMi, Sep 12, 2007 11:17
Antworten mit Zitat
Benutzer-Profile anzeigen
So müsste es gehen:
Code: [AUSKLAPPEN]
Function DrawArray(_dimX:Int, _dimY:Int, _map:Int[,])
   For j=0 To (_dimY -1)
   For i=0 To (_dimX -1)
      DrawText _map(i,j),10+(10*i),10+(10*j)
   Next
   Next
End Function


Ist selbsterklärend denk ich.


Gruß,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

PicHunter

BeitragMi, Sep 12, 2007 11:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo klappt ^^
öhm... heiß das [,] ein 2 Dimensionales array mit, ich nenns jetzt mal so, beliebig vielen feldern?

naja... muss ja.... thx

FOODy

BeitragMi, Sep 12, 2007 13:05
Antworten mit Zitat
Benutzer-Profile anzeigen
PicHunter hat Folgendes geschrieben:
Jo klappt ^^
öhm... heiß das [,] ein 2 Dimensionales array mit, ich nenns jetzt mal so, beliebig vielen feldern?

naja... muss ja.... thx


Jop.
[,,] wären dann 3 Dimensionen, etc.

Die Dimensionenlänge bekommt man mit Array.Dimensions()
Code: [AUSKLAPPEN]
SuperStrict
Framework BRL.StandardIO

Local array:Int[1,2,3]

out(array)

Function out(array:Int[,,])
   Local dims:Int[]=array.Dimensions()' Dimensionen in ein Array
   Print "Dimensionen: "+dims.length
   For Local i:Int=0 Until dims.length
      Print "Dimension "+i+" hat die laenge "+dims[i]
   Next
EndFunction


Gruß,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group