2-dim übergabe an eine Funktion
-
Hi
Angenommen ich habe ein 2-dim Array mit fixer Größe:
char m_Array[CONST_X][CONST_Y];
und will es an ein Funktion übergeben, die mit beliebigen Größen umgehen soll, wie mache ich das?
z.B.
void Func(char **aArray, int size_x, int size_y)
oder
void Func(char aArray[][], int size_x, int size_y ) mag nicht.Oder Frage: Kann ich, wenn ich einen Pointer auf die erste Varibable aus dem Array übergebe, sicher sein dass ich mit einer linearen Verknüpfung der size_x und size_y immer das richtige Element treffe?
Also z.B.
Func( &m_Array[0][0], CONST_X, CONST_Y) mit void Func(char* pBuffer, int size_x, int_size_y) { for (int x = 0; x < size_x; x++) { for (int y = 0; y < size_y; y++) { // Accessing Element at x/y char c = *(pBuffer++); ... } }
Würde das so klappen?
Stefan
-
so funktioniert das ganz bestimmt nicht, denn: deine Funktion verlangt einen char-Pointer. Was du ihr gibst ist aber ein Pointer auf einen Pointer auf einen Pointer vom Typ char (char***). Denn mit dem &-Operator greifst du ja auf die Adresse zu!!!
Anstonsten sollte das aber funktionieren...Mfg, smasher1985
-
Schreib statt "&m_Array[0][0]" einfach "m_Array".