SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: bob esponja en Viernes 6 de Enero de 2006, 04:39

Título: Duda Con Punteros
Publicado por: bob esponja en Viernes 6 de Enero de 2006, 04:39
parece una pavada pero estoy implementando una lista generica para una cosa que estoy haciendo y no logro hacer que el contenido de raiz se mantenga modificado al salir del metodo

ej

Código: Text
  1.  
  2. struct nodo
  3. {
  4.     void * data;
  5.     struct nodo * next;
  6. };
  7.  
  8. typedef struct nodo Nodo;
  9.  
  10. void insertar( Nodo * raiz , void * data )
  11. {
  12.          // todo el metodo
  13. }
  14.  
  15.  

el problema es que al salir raiz no toma el valor que le di adentro
probe metodos con punteros a int y si los modifica, no se porque sera porque antes ya lo habia hecho ( no me acuerdo como  :D  ).

el compilador es gcc
Título: Re: Duda Con Punteros
Publicado por: rir3760 en Viernes 6 de Enero de 2006, 12:08
Cita de: "bob esponja"
el problema es que al salir raiz no toma el valor que le di adentro
probe metodos con punteros a int y si los modifica, no se porque sera porque antes ya lo habia hecho ( no me acuerdo como  :D  ).
Si te entiendo correctamente estas tratando de modificar el puntero al primer elemento (la variable 'raiz') de una lista dentro de tu funcion.

Si ese es el caso tienes dos opciones:

1) Pasar la direccion en memoria de 'raiz', esto es, cambiar el tipo del parametro a 'Nodo **raiz' y realizar indireccion dentro de tu funcion ya que si no lo haces estarias modificando la variable local.

2) Modificar tu funcion para que devuelva un valor de tipo 'Nodo *' (que seria el nuevo valor de 'raiz') y asignar este a la variable 'raiz'.

Un saludo
Título: Re: Duda Con Punteros
Publicado por: bob esponja en Viernes 6 de Enero de 2006, 12:41
gracias

voy a hacer eso, yo hice lo segundo pero me interesa lo primero...