- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 9 von 9

Thema: mehrdimensionale arrays übergeben

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    31
    Beiträge
    540

    mehrdimensionale arrays übergeben

    Anzeige

    Praxistest und DIY Projekte
    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

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Felix G
    Registriert seit
    29.06.2004
    Ort
    49°32'N 8°40'E
    Alter
    41
    Beiträge
    1.780
    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!

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    31.03.2004
    Beiträge
    57
    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

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    31
    Beiträge
    540
    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...

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    31.03.2004
    Beiträge
    57
    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

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.01.2007
    Beiträge
    134
    Arrays übergibt man an Funktionen nur mit Zeigern, such dir mal ein Beispiel im Netz, gibt genügend.

    Grüsse, Stefan

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied Avatar von drew
    Registriert seit
    06.04.2005
    Beiträge
    161
    Hallo,
    ein zweidimensionales Array kannst Du so übergeben:
    funktion(char **Array)
    und z.B. so ansprechen:
    Array[1][2]=0;

    Drew


  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    33
    Beiträge
    522
    Dem Compiler müssen bei der Übergabe die Größe aller Dimensionen bis auf die erste bekannt sein, Also z.b. so
    Code:
    char array2d[5][10];
    void func(char array[][10])
    oder
    Code:
    char array3d[5][10][3];
    void func(char array[][5][3])
    MfG Mark

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    31
    Beiträge
    540
    ok, thx an alle,hat sehr geholfen!

    mfg roboman
    ...and always remember...
    ...AVR RULES...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test