Как привести простой указатель к многомерному массиву фиксированного размера?
У меня есть функция, которая принимает указатель на массив с плавающей запятой. Основываясь на других условиях, я знаю, что указатель фактически указывает на матрицу 2x2 ИЛИ 3x3. (фактически память изначально была выделена как таковая, например, float M [2] [2]). Важно то, что я хочу сделать это определение в теле функции, а не в качестве аргумента функции.
void calcMatrix( int face, float * matrixReturnAsArray )
{
// Here, I would much rather work in natural matrix notation
if( is2x2 )
{
// ### cast matrixReturnAsArray to somethingAsMatrix[2][2]
somethingAsMatrix[0][1] = 2.002;
// etc..
}
else if(is3x3)
{ //etc...
}
}
Я знаю, что мог бы использовать шаблоны и другие методы, чтобы лучше решить эту проблему. Мой вопрос на самом деле о том, как сделать такой акт в комментарии ###. Работаю в C ++.