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.