Tengo un programa que se parece a lo siguiente:conversión de matrices multidimensionales a los punteros en C++
double[4][4] startMatrix;
double[4][4] inverseMatrix;
initialize(startMatrix) //this puts the information I want in startMatrix
ahora quiero para calcular la inversa de startMatrix y ponerlo en inverseMatrix. Tengo una función de biblioteca para este propósito cuyo prototipo es el siguiente:
void MatrixInversion(double** A, int order, double** B)
que se lleva a la inversa de A y lo pone en B. El problema es que necesito saber cómo convertir el doble [4] [ 4] en un doble ** para dar a la función. He intentado sólo hacer que la "forma obvia":
MatrixInversion((double**)startMatrix, 4, (double**)inverseMatrix))
pero eso no parece funcionar. ¿Es esa la forma correcta de hacerlo?
& startMatrix, 4, & inverseMatrix –
¿Por qué no haces una clase de matriz, más bien haciendo las cosas a la manera C? (Pasar objetos a funciones, en lugar de invocar métodos sobre objetos) – GManNickG
@GMan: Como OP dijo que la función es "una función de biblioteca", lo más probable es que no tenga libertad para cambiar la interfaz. Clase o no clase, en algún momento tendrá que obtener el "doble **" apropiado para pasar a la función. – AnT