2D Array an void* Pointer übergeben
-
Hallo ich hoffe mir kann jemand helfen.
Ich würde gern ein 2D Array an einen Funktionsaufruf mit einem void Pointer übergeben. Doch leider klappt es nicht so ganz. Hier mein Codebeispiel.
#define DIM_C 3
#define INT_C 0
#define CHAR_C 5
#define FLOAT_C 1
#define LONG_C 2
#define DOUBLE_C 3void Function(void** v_PtrA, char DatenTyp);
int main(int argc, char* argv[])
{
int BspArray[2][DIM_C] = { {1,2,3}
{4,5,6}
};Function(&BspArray, INT_C);
return (1);
}
void Function( void** v_PtrA, char DatenTyp)
{
int i;switch( DatenTyp )
{
case INT_C :
printf( "\nIntArray:" );
for (i = 0 ; i<2 ; i++)
{
for (j = 0 ; j<DIM_C ; j++)
{
printf( "\nInhalt ist -> %d", ( ( int )v_PtrA+i)+j );
}
}case CHAR_C:
........
}
}Hat jemand einen Rat?
mfg Sven
-
Die Äquivalenz "Pointer = Array" funktioniert leider nur in einer Dimension, alle höheren Dimensionen müssen zur Compilezeit festgelegt werden. Und die Konstruktion "( ( int )v_PtrA+i)+j )" dürfte in dem Zusammenhang auch nicht funktionieren.