3 dimensionales Array
-
Hallo ich habe folgendes Problem:
ich moöcht eine 3dimensionales Array erstellen, Beispiel:
int BOX1[2][4] = { 1,2,3,4, 5,6,7,8 }; int BOX2[2][4] = { 8,7,6,5, 4,3,2,1 };
nun möchte ich eine Variable die mir erlaubt auf eines der Elemente der beiden Boxen zuzugreifen, zum Beispiel so...
ALLBOXES[0][1][1];
das bedeutet ich befinde mich in der 0ten Box und möchte in der 2ten Zeile das
2te Element haben.wie muss ich ALLBOXES definieren
irgendiwe so: int ALLBOXES[] = {BOX1, BOX2};
aber kriegs mich raus wies richtig gehtvielen Dank im Vorraus, Gruß
-
Warum packst du die Boxen nich von vornherein in ein großes Array:
int ALLBOXES[2][2][4] = ...; #define BOX1 ALLBOXES[0] #define BOX2 ALLBOXES[1]
Andersherum benötigst du ein Array von Zeigern auf int-Arrays.
-
weil ich in einer For-Schleife für jeden durchlauf auf eine andere Box zugreifen will ich aber auch der übersichtlichkeit halber die einzelnen
Boxes in einer ExtraVariable benutzen will.
Wie sieht denn dann ALLBOXES definiert aus?oder
wie sieht denn so ein ein Array von Zeigern auf int-Arrays. in meine Fall aus?
-
Veritas696 schrieb:
Wie sieht denn dann ALLBOXES definiert aus?
int ALLBOXES[2][2][4] = { {//BOX1 1,2,3,4, 5,6,7,8 }, {//BOX2 8,7,6,5, 4,3,2,1 } };
wie sieht denn so ein ein Array von Zeigern auf int-Arrays. in meine Fall aus?
Katastrophal. Sowas endet normalerweise mit einer verwirrenden Sammlung an Klammern und Sternen (oder mit einigen dazwischengeschalteten Typedefs).
-
na gut, denke das kann ich so noch verkraften mit den zusätzlichen defines von
oben,würd mich aber trotzdem mal interessieren wie so ein Array auf die 2 Boxen aussehen muss um dann auch mit ALLBOXES[.][.][.] drauf zugreifen zu können.
-
int ALLBOXES[2][2][4] = { {//BOX1 1,2,3,4, 5,6,7,8 }, {//BOX2 8,7,6,5, 4,3,2,1 } };
Die Varaibelen definition kann sich doch gar nicht so dramatisch ändern wenn man anstatt das da dann schreibt
int ALLBOXES[2] ??? = { BOX1,BOX2 };
-
Wenn du die richtigen Typen hast, vermutlich nicht:
typedef int(*arr2d)[4];//wie genau das heißt, müsste ich selber nachschauen arr2d ALLBOXES[2]={BOX1,BOX2};