[C++] Zeiger auf 2D-Arrays

Im Zuge meiner Implementierung der Software für mein Matrixlicht hatte ich vor eine Routine zu schreiben, die es mir erlaubt von der ID des Musters, welches per DIP-Schalter ausgewählt werden kann, automatisiert auf das zugehörige 2D-Array zu schließen.

Nach einiger Recherche kam ich auf diesen Code:

int pattern0[X][Y] = {...};

/* N: Anzahl der Elemente im Pointer-Array */
int (*pattern_collection[N])[X] = {pattern0,...};

/* A: Index des Elements aus dem Pointer-Array */
int *p_selected_pattern = reinterpret_cast<int*>(*(pattern_collection + A) + X);

/* Prints pattern0[1][1] if Y is set to 0 and X to 0 */
std::cout << *(p_selected_pattern + Y) << std::endl;

EDIT: Es gab einige Fehler im Code, diese wurden berichtigt.

Werbeanzeigen