zeiger auf mehrdimensionales array

Gast #36160
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
}
Gast #36161
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
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.