S
S
sddvxd2018-12-14 23:31:17
C++ / C#
sddvxd, 2018-12-14 23:31:17

Good implementation of array reversal?

Good afternoon! There was a task in order to deal with arrays to write a program to flip an array, for example, a four-dimensional one. Please tell me if I did everything right and is it possible to return int* to int(*)[][][]?

int offset(int a, int b, int c, int d){
    return a * 8 + b * 4 + c * 2 + d;
}

int* array_reverse(int* pint, int elems){
    int* parr = (int*)malloc(elems * sizeof (int));
    for(int i = 0; i < elems; ++i){
        parr[i] = pint[elems - 1 - i];
    }
    delete [] pint;
    return parr;
}

int main(){
    int arr[2][2][2][2] = {{{{1,2},{3,4}},{{5,6},{7,8}}}, {{{9,10},{11,12}},{{13,14},{15,16}}}};
    int size = offset(1,1,1,1) + 1;
    int* parr = (int*) arr;

    for(int i = 0; i < size; ++i)
        cout << parr[i] << " ";
    cout << "\n";
    parr = array_reverse(parr, size);
    for(int i = 0; i < size; ++i)
        cout << parr[i] << " ";
    cout << "\n";
}

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question