Programación General => C/C++ => Mensaje iniciado por: bleenk en Sábado 19 de Mayo de 2007, 18:03
Título: Punteros, Dobles Punteros, Etc Etc
Publicado por: bleenk en Sábado 19 de Mayo de 2007, 18:03
Buenas gente, estoy haciendo un proyecto para solucionar sudokus y me he quedado un tanto encallao :S
tengo una estructura del tipo:
Código: Text
typedef struct tNode {
int **sudoku;
struct tNode *seguent;
} tNode;
con un array bidimensional para guardar el tablero y otro campo apuntando al siguiente tablero. tambien tengo declarada la funcion para reservar la memoria del tablero (mediante memoria dinamica). esta funcion la he conseguido por ahi :P
Código: Text
int ReservaMemoria(int ***sudoku){
.
.
.
}
como veis a esa funcion solo le quiero pasar por parametro el campo tablero de la estructura tNode. asi pues...
declaro una variable:
Código: Text
struct tNode a;
y lo que me falta es como tiene que ser la llamada a la funcion :S ya lo he probado de muchas maneras y no consigo solucionarlo. a ver si alguien me puede ayudar:
Código: Text
ReservaMemoria(a->.....);
muchas gracias de anemano
Título: Re: Punteros, Dobles Punteros, Etc Etc
Publicado por: pater6 en Lunes 21 de Mayo de 2007, 17:17
Tampoco es que sea un experto, pero si declaras
Código: Text
struct tNode a;
no tienes que usar el simbolo -> para acceder a los campos de una estructura. Si no me equivoco, el operador -> se usa cuando la variable de tipo struct lokesea es un puntero, o sea si lo hubieses declarado
Código: Text
struct tNode *a;
Si lo que quieres es pasarle el puntero doble por referencia para ser modificado prueba a hacer así la llamada:
Código: Text
ReservaMemoria(&(a.sudoku));//Le pasas las direccion del puntero doble
Yo creo que así te podría funcionar. Pruebalo a ver qué tal y si no dilo por aquí para que otros expongan su opinión.