I have a pointer to 4dimensional array; and I want to use it to assign values to 4 dimensional array.
What I know is to create a 4 dimensional array and traverse through it using pointer to float
float dArray [2][3][4][5];
float *ptr = &dArray[0][0][0][0];
What I am struggling with is if I have pointer to 4dimensional array
float ***pointerArray4D[];
and say I want to use it store values in it for below array - how do I do it.
value = 0;
for (int ix0 = 0; ix0 < DIM0; ++ix0)
for (int ix1 = 0; ix1 < DIM1; ++ix1)
for (int ix2 = 0; ix2 < DIM2; ++ix2)
for (int ix3 = 0; ix3 < DIM3; ++ix3)
pointerArray4D[ix0][ix1][ix2][ix3] = float(value++);
What I have tried to do is
1)
float pointerArray4D_1[2][3][4][5];
float ***pointerArray4D[5];
pointerArray4D = pointerArray4D_1;
2) Other thing which i think I should be doing is assign memory to it
pointerArray4D=new float*[2];
for(int i=0; i<2; ++i)
pointerArray4D[i]=new float*[3];
for(int i=0; i<3; ++i)
pointerArray4D[i]=new float*[4];
for(int i=0; i<4; ++i)
pointerArray4D[i]=new float[5];
error: expected constructor, destructor, or type conversion before ‘=’ token
Needless to say a new bee learning the art :)
Edited - the typo of using double to represent the idea of I being able to traverse