www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik zeiger auf mehrdimensionales array


Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
}

Autor: Rainer D (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.