@sddvxd

Хорошая реализация переворачивания массива?

Добрый день! Было задание с целью разобраться с массивами написать программу для переворачивания массива, например, четырехмерного. Подскажите пожалуйста, правильно ли я все сделал и можно ли вернуть int* к 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";
}
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы