Kann mir das mal jemand erklären!!!
-
Ich versuche einen pointer auf ein zwei dimensionales Array zu setzen.
mit folgendem Code:#include <iostream> int main() { int arr[3][3]; int **ptr_arr; ptr_arr=arr; return 0; }
Wieso funzt das nicht - compi meckert immer.
Bei eindeminsionálen array geht das.
Wie soll man das machen, wenn man z.b. mit Matrizen rechnen will?
-
meistens hilft es auch zu wissen was der compilier mekert
#include <iostream> int main() { int arr[3][3]; int *ptr_arr; ptr_arr=arr; // ptr_arr muss du jetzt so behandeln als abs auf ein "int arr[9];" zeigt // z.b. &arr[0][2] == ptr_arr + 2 oder &arr[1][2] == ptr_arr + 5 return 0; }
-
Ahso im Speicher kann man sich das dann so vorstellen?
Arr [0][0] [0][1] [0][2] [1][0] [1][1] [1][2] [2][0] [2][1] [2][2]
9 Stellen und ich mach ein normalen Pointer auf [0][0] und greife über pupsnormale Pointerarithmetik auf die Elemente zu!!!
Und das ganze funzt dann auch für mehr Dimensionen z.b. 5.
Ahhhh - Ich glaub ich habs gerafft - Danke DimahMann und ich rack mir hier schon stunden einen ab.
-
Übrigens sehr unschöner Titel...