Wie schon richtig bemerkt wurde ist C kein Java.
http://home.fhtw-berlin.de/~junghans/cref/CONCEPT/arrays.htmlDer Punkt ist: C kennt ausschliesslich eindimensionale Arrays.
Zweidimensionale Arrays werden wie folgt definiert:
main()
{
int Matrix[4][2]={{1, 2},
{3, 4},
{5, 6},
{7, 8}};
}
Nur - was bedeutet das? Wie gesagt C kennt nur eindimensionale Arrays. Die Antwort ist: Matrix ist ein eindimensionales Array. Die Elemente von Matrix, also z.B. Matrix[3] sind vom Type int*, d.h. Zeiger auf int. Deshalb kann man Matrix[3][1] hinschreiben. Man könnte genausogut auch (Matrix[3])[1] schreiben. Dann sieht man schon deutlicher, dass Matrix tatsächlich nur eindimensional ist.
D.h. Du könntest auf die Idee kommen Folgendes zu schreiben:
int ROT [3] = {255, 0, 0};
int GRUEN [3] = {0, 255, 0};
int BLAU [3] = {0, 0, 255};
int * farbe[8] = {ROT, GRUEN, BLAU, BLAU, ROT, ROT, GRUEN, BLAU);
Ob das dass ist was Du willst kann ich aber ohne weiteren Kontext nicht sagen. Bei dem Vorschlag stehen in farbe ja nicht die Werte aus ROT, GRUEN, BLAU sondern die Arrayzeiger. Je nachdem was Du vorhast ist das genau richtig oder völlig falsch.
Wenn man von gemanagten Sprachen wie Java kommt ist das regelmäßig eine kleine Hürde. Sobald man es einmal kapiert hat ist es aber nicht wirklich schwierig
