У меня есть функция, которая берет указатель на массив с плавающей запятой. На основании других условий я знаю, что указатель фактически указывает на матрицу 2x2 OR 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...
}
}
Я знаю, что я мог бы использовать шаблоны и другие методы, чтобы лучше решить эту проблему. Мой вопрос действительно о том, как сделать такой бросок в комментарии ###. Работает на С++.