[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.

Auffrischung der Programmiersprachenkenntnisse

Ich habe angefangen mich wieder in den Programmiersprachen zu trainieren, die ich mehr oder weniger gut kenne. Und lerne nebenbei eine neue Programmiersprache: Rust.

Da ich sehr viel Zeit in mein Studium investiere, bleibt mir keine Zeit für große und aufwendige Projekte. Aus diesem Grund habe ich begonnen, grundlegende Algorithmen in verschiedenen Programmiersprachen zu implementieren, um die syntaktischen Besonderheiten kennen zu lernen.

Gerade bei Rust muss ich mich an einige Besonderheiten gewöhnen. Begonnen habe ich mit Bubble Sort. Diesen Algorithmus werde ich in den Programmiersprachen Rust, Python, C und JavaScript entwickeln. Sowie auch die anderen Algorithmen, die ich mir aussuche. Möglicherweise werde ich dies auch auf Java und C# erweitern. C# werde ich dann wahrscheinlich mit MonoDevelop/Xamarin Studio entwickeln.

Die Algorithmen werde ich mit möglichst verständlichem Code, einfachen Funktionen, und hoffentlich auch Tests programmieren.
Sofern es mir die Programmiersprache erlaubt, werde ich idiomatischen Code schreiben. Ich werde, soweit ich die Motivation und die Zeit habe, den Code weiter optimieren.