Also so geht das normalerweise nicht...
ich würde einen Pointer auf das erste Element des Arrays übergeben, und dazu noch 3 weitere Parameter mit den Größen der Dimensionen des Arrays.
ich programmiere gerade einen led cube und möchte die animationen in arrays speichern. nun muss ich aber die arrays (z.B. AnimationName[BildNummer][Spalte][Zeile]) an die funktion makeImage übergeben, die die ausgänge schaltet.
weiß jemand, ob dass so geht:
makeImage(AnimationName[][][])
{
...
}
mfg roboman
Also so geht das normalerweise nicht...
ich würde einen Pointer auf das erste Element des Arrays übergeben, und dazu noch 3 weitere Parameter mit den Größen der Dimensionen des Arrays.
So viele Treppen und so wenig Zeit!
Ich bin zwar kein c_Crack, meine aber, es müsste so gehen:
makeImages(int AnimationaName[20][20][20]) // beispiel
wobei der Datentyp bzw. die dimensionierung entsprechend deinem array erfolgen muss. Arrays sind von Haus aus bereits Referenzen, d.h. du sagst deiner Funktion, wo das array steht und welcher Typ das ist und dann kann sie das arraylesen und schreiben. Was du dann in der Funktion änderst, wird dann auch direkt im array gespeichert und steht auch in der main zur Verfügung.
Gruss Jens
ok, wenn ich das dann mit nem zeiger mache, sähe das ja so aus, oder:
makeImage(*animationName)
{
}
aber wie komme ich dann in der funktion an die werte von AnimationName[][][]?
mfg roboman
...and always remember...
...AVR RULES...
Was ich erinnere ist:
Ein array ist von haus aus eine Referenz auf den Speicherbereich, in welchem das Array liegt, wenn du werte an das array übergibst, werden diese automatisch dorthin geschrieben. Die Werte stehen sowohl in der Funktion als auch im Hauptprogramm zur Verfügung, wenn du deiner Funktion das array so wie oben beschrieben übergibst
Schau auch mal hier:
http://www.c-plusplus.de/forum/viewt...Cbergeben.html
Arrays übergibt man an Funktionen nur mit Zeigern, such dir mal ein Beispiel im Netz, gibt genügend.
Grüsse, Stefan
Hallo,
ein zweidimensionales Array kannst Du so übergeben:
funktion(char **Array)
und z.B. so ansprechen:
Array[1][2]=0;
Drew
Dem Compiler müssen bei der Übergabe die Größe aller Dimensionen bis auf die erste bekannt sein, Also z.b. so
oderCode:char array2d[5][10]; void func(char array[][10])
MfG MarkCode:char array3d[5][10][3]; void func(char array[][5][3])
ok, thx an alle,hat sehr geholfen!
mfg roboman
...and always remember...
...AVR RULES...
Lesezeichen