Mehrdimensionale Array
-
Hallo!
Ich stehe derzeit ein bisschen auf der Leitung!Ich hoffe mir kann wer weiterhelfen.
Ich habe folgendes dreidimensionales Array:
unsigned char [8][2][2];Und zwar möchte ich zuerst bei den ersten [8] 1 bis 8 reinschreiben und dann bei den [2][2] befinden sich immer zwei Punkte [2]-> x [2]->y Wert also auf [0] [0] ist der erste Punkt und auf [1][1] ist der zweite aber wie kann ich das machen?
mfg
-
Hallo
Was willst du denn machen?
Mfg.
way
-
Ich will eigentlich nur wissen wie ich auf die einzelnen Plätze des Array zugreifen kann?
Also auf den acht Plätzen [8] stehen Bezeichenungen
Und [2][2] stehen jeweils Anfangs und Endpunkte.
-
_coder schrieb:
Und zwar möchte ich zuerst bei den ersten [8] 1 bis 8 reinschreiben und dann bei den [2][2] befinden sich immer zwei Punkte [2]-> x [2]->y Wert also auf [0] [0] ist der erste Punkt und auf [1][1] ist der zweite aber wie kann ich das machen?
Hast du denn eine richtige Vorstellung von einem dreidimensionalem Array? Das ist wie eine Art dreidimensionale Tabelle, mit total 8*2*2 = 32 Einträgen.
_coder schrieb:
Also auf den acht Plätzen [8] stehen Bezeichenungen
Und [2][2] stehen jeweils Anfangs und Endpunkte.Nein. Auf die ersten 8 Plätze kannst du nicht ohne weiteres zugreifen, zumindest nicht, um dort "Bezeichnungen" (was immer das sein mögen) rein zu schreiben. Sie referenzieren nur die Unterarrays. Eigentlich ist dein
char[8][2][2]das selbe wie einchar[32], mit dem Unterschied, dass der Compiler dir die Berechnung des Offsets für mehrere Dimensionen abnimmt.Wo liegt denn das Problem beim Zugriff?
Array[7][1][0] = 'x';Allerdings gibt es bestimmt bessere Möglichkeiten. Sagen wir, du willst 8 Punkte speichern:
struct Punkt { int x; int y; }; Punkt Anfangspunkte[8]; Punkt Endpunkte[8]; Anfangspunkte[0].x = 241; Anfangspunkte[0].y = 361;Noch besser wären Container, aber ich hab das Gefühl, deren Einsatz würde dich hier überfordern.
-
unsigned char arr[8][2][2]; arr[0][0][0] = 0; arr[0][0][1] = 1; arr[0][1][0] = 2; arr[0][1][1] = 3; arr[1][0][0] = 4; // usw. arr[7][1][1] = ~0; // weiter gehts nimmer...Du kannst auch mit Variablen zu greifen, also:
int s = 3; int x = 0; int y = 1; arr[p][x][y] = 20;Aber das sind absolute Grundlagen. Wenn du dies wirklich nicht wusstest, solltest du dir vielleicht zuerst ein C++ Buch durchlesen.
Grüssli