Forum: Mikrocontroller und Digitale Elektronik zeiger auf mehrdimensionales array


von Mark (Gast)


Lesenswert?

frage:

zwei arrays:
const int array1[][2]={
                                    {5,3},
                                    {3,7},
                                };

const int array2[][2]={
                                    {5,3},
                                    {3,7},
                                    {4,8},
                                };

jetzt möchte ich in einer Funktion einen Pointer haben der mir auf ein
Array zeigt, und mit Hilfe dessen ich auf einen Speicherzelle des
gewählten Arrays zugreifen kann

int funktion(unsigned char mode, unsigned char x, unsigned char y)
{
    int** Tabelle; --> so hätt i mir das gedacht, tut aber nicht...
    if(mode)
        Tabelle = &array1; --> da kommt der compilererror (das ich hier
kein '=' verwenden darf)
    else
        Tabelle = &array2;

    und da möcht i jetzt zum Beispiel einfach
   den wert von dem ausgewählten array und der speicherzelle x,y
zurückgeben
}

von Rainer D (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

wenn ich das richtig verstanden hab willst Du ner Funktion mode wert
übergeben und den x und y wert des Wertes den Du auslesen willst....


Erstmal was bringt "int **Tabelle;"?!
Hier muß stehen: int (*Tabelle)[2];
das ist dann ein Pointer auf ein [][2] zweidimensionales Array mit
mehreren Zeilen.

In den Funkionen erfolgt die zuweisung mit:
Tabelle=Array1; oder Tabelle=Array2; das "&" ist hier nicht nötig da
ich nicht der Inhalt der Arrays zugwiesen wird sondern nur dem Tabellen
Pointer der Pointer auf das Array.....
eigentlich ist hier überhaupt kein Pointer notwendig, da man auf
globale Arrays zugreift und den Wert per Funktion ausließt....
ich würde das für MCU's aber mit char arrays machden da ein char
nur pro Platzhalter im Array 8bit braucht ein int dagegen 16bit...

ich hab mal ein Programm geschrieben das die Arrayabfrage simuliert
wenn die couts cins durch printf ersetzt/gelöscht werden funktionieren
es auch in C bzw auf nem Controller.....

MfG
Rainer





Zweitens ein Array name wie Array

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.