Pointer auf Array in Array
-
Hi Leute,
ich habe folgendes vor:
int thomas[9][4];
Nun möchte ich ein 3x3 Array erzeugen, in welches ich Pointer auf die 9 1x4-Arrays aus "thomas" schreibe.
Ich dachte hierzu an folgendes:
int (* sebastian[4]) [3][3];
Erste Frage: Ist der "sebastian" so richtig, oder schon falsch?
Zweite Frage: Falls es richtig ist, wie weise ich die Pointer auf die 1x4-Arrays aus "thomas" an "sebastian" zu?Würd mich sehr freuen, wenn mir jemand helfen könnte.
VG
Pascal
-
Wenn ich Dich richtig verstanden habe, dann möchtest Du mit
sebastian
nur auf die einzelnen Einträge des Arraysthomas
zeigen.sebastian würde ich so schreiben:
int (* sebastian[3][3]);
Damit hast Du 3x3 Pointer auf einen int-(Start)-Wert, welche Du leicht füllen kannst.
Bei einem int* kannst Du wie auf ein Array zugreifen (in Deinem Fall die restlichen 4).
Schaub Dir mal den Code an:
int thomas[9][4]; int (* sebastian[3][3]); // Pointer füllen for ( int i = 0; i < 3; i++ ) for ( int k = 0; k < 3; k++ ) sebastian[ i ][ k ] = &thomas[ i*3 + k ][ 0 ]; thomas[ 5 ][ 3 ] = 100; int val = sebastian[ 1 ][ 2 ][ 3 ] ;
Aber Vorsicht, hier gibt es keinerlei Bereichsüberprüfungen, Du solltest also wissen wohin Du zugreifst...
Grüße,
Chriss