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 }
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.