В каких ситуациях следует избегать reinterpret_cast для изменения формы массивов?

Поэтому я сейчас работаю над встроенной платой (STM32) и, в частности, рассматриваю ограничения памяти, я стараюсь избегать тяжелых функций, в том числе выделения памяти. У меня есть 1×9 2D массив, который мне нужен reshape в 3х3. Я нашел это онлайн, что это может быть сделано с помощью reinterpret_cast но мне интересно, если это безопасный сделать это?

Ниже приведен пример кода, который использует reinterpret_cast для изменения формы, а также нормальной работы массива, что я думаю, может быть альтернативой reinterpret_cast, Что вы, ребята, предлагаете? проверьте этот код: https://repl.it/IIYv/20 ; оба имеют одинаковые выходы

#include <iostream>

int main() {

double matrix[1][9] = { {10, 20, 30, 40, 50, 60, 70, 80, 90} };//using reinterpret_cast

double (&reshapeMatrix)[3][3]=*reinterpret_cast<double(*)[3][3]>(matrix);
double newArray[3][3];int i, j;

for (i=0; i<3; i++){
for (j=0; j<3; j++){
printf ("%f, ",reshapeMatrix[i][j]);
}
printf ("\n");
}

//using normal array operation
int r=0, c=0;

for (i=0; i<3; i++){
for (j=0; j<3; j++){
newArray[i][j] = matrix[r][c];
c++;
}

}
printf ("\n\n\n");

for (i=0; i<3; i++){
for (j=0; j<3; j++){
printf ("%f, ",newArray[i][j]);
}
printf ("\n");
}}

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]