Jak rzutować prosty wskaźnik na tablicę wielowymiarową o ustalonym rozmiarze?

Mam funkcję, która pobiera wskaźnik do tablicy zmiennoprzecinkowej. Na podstawie innych warunków wiem, że wskaźnik wskazuje na matrycę 2x2 lub 3x3. (w rzeczywistości pamięć została początkowo przydzielona jako taka, np. float M [2] [2]). Ważne jest, aby określić to w ciele funkcji, a nie jako argument funkcji.

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...
    }

}

Wiem, że mogłem użyć szablonów i innych technik, aby lepiej rozwiązać ten problem. Moje pytanie brzmi naprawdę, jak zrobić taki rzut w komentarzu ###. Praca w C ++.

questionAnswers(3)

yourAnswerToTheQuestion