Matrices y punteros
Publicado por Rafael (1 intervención) el 14/05/2007 19:39:57
Hola a todos,
antes de nada quería dar la enhorabuena por el foro, que nos ha solucionado numerosos problemas a más de uno.
La duda que tengo consiste en lo siguiente: estoy escribiendo un código para realizar algunas operaciones con matrices estocásticas, para ello he definido algunas matrices dobles y punteros dobles a dichas matrices. La duda que tengo aparece a la hora de referenciar los punteros a las matrices ya definidas. He leido que una matriz no es otra cosa que un puntero al primer elemento del array, por lo tanto, si yo quiero asignar el valor de una matriz a un puntero doble he supuesto que yo solo tendría que igualar la direccion a la que apuntan de la siguiente manera:
double **p;
double mat[5][5];
p = mat;
pero me da el siguiente mensaje de error al compilar "aviso: asignación desde un tipo de puntero incompatible".
También he probado a hacerlo de la siguiente manera:
p = &(*(mat)[0][0]);
pero aparece el siguiente mensaje de error al compilar "error: el valor indicado por el subindice no es ni matriz ni puntero".
Tengo que decir que para trabajar con el puntero doble he realizado reserva dinamica de memoria mediante las funciones 'malloc' y 'sizeof'. Si alguien está interesado en ver el código no tendré problema en enviárselo.
Gracias por todo de antemano.
antes de nada quería dar la enhorabuena por el foro, que nos ha solucionado numerosos problemas a más de uno.
La duda que tengo consiste en lo siguiente: estoy escribiendo un código para realizar algunas operaciones con matrices estocásticas, para ello he definido algunas matrices dobles y punteros dobles a dichas matrices. La duda que tengo aparece a la hora de referenciar los punteros a las matrices ya definidas. He leido que una matriz no es otra cosa que un puntero al primer elemento del array, por lo tanto, si yo quiero asignar el valor de una matriz a un puntero doble he supuesto que yo solo tendría que igualar la direccion a la que apuntan de la siguiente manera:
double **p;
double mat[5][5];
p = mat;
pero me da el siguiente mensaje de error al compilar "aviso: asignación desde un tipo de puntero incompatible".
También he probado a hacerlo de la siguiente manera:
p = &(*(mat)[0][0]);
pero aparece el siguiente mensaje de error al compilar "error: el valor indicado por el subindice no es ni matriz ni puntero".
Tengo que decir que para trabajar con el puntero doble he realizado reserva dinamica de memoria mediante las funciones 'malloc' y 'sizeof'. Si alguien está interesado en ver el código no tendré problema en enviárselo.
Gracias por todo de antemano.
Valora esta pregunta


0