• Sábado 9 de Noviembre de 2024, 02:23

Autor Tema:  Punteros, Dobles Punteros, Etc Etc  (Leído 1052 veces)

bleenk

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Punteros, Dobles Punteros, Etc Etc
« en: Sábado 19 de Mayo de 2007, 18:03 »
0
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
  1. typedef struct tNode {
  2.   int **sudoku;
  3.   struct tNode *seguent;
  4. } tNode;
  5.  

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
  1. int ReservaMemoria(int ***sudoku){
  2. .
  3. .
  4. .
  5. }
  6.  

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
  1. struct tNode a;
  2.  

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
  1. ReservaMemoria(a->.....);
  2.  

muchas gracias de anemano

pater6

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Punteros, Dobles Punteros, Etc Etc
« Respuesta #1 en: Lunes 21 de Mayo de 2007, 17:17 »
0
Tampoco es que sea un experto, pero si declaras
Código: Text
  1.  struct tNode a;
  2.  

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
  1. struct tNode *a;
  2.  

Si lo que quieres es pasarle el puntero doble por referencia para ser modificado prueba a hacer así la llamada:

Código: Text
  1. ReservaMemoria(&(a.sudoku));//Le pasas las direccion del puntero doble
  2.  

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.