problema de punteros

netkata
05 de Septiembre del 2005
hola soy una chica con un examen a la vuelta de la esquina y no entiendo pq me ocurre algo rarisimo con una practica que debo entregar.

tengo un tipo de dato 'solucion' cuyos valores almaceno en variables de un método recursivo...ninguna de las variables guarda el valor que lleva el puntero salvo una, que es del mismo tipo que las demas (int).

pd:que diferencia hay entre pasarme al metodo el puntero tal cual o bien pasarselo asi : &puntero, cuando se le llama??

muchas gracias

chuidiang
05 de Septiembre del 2005
Hola:

No entiendo muy bien.

En una funcion, metodo no es lo mismo declararlo de estas formas

void funcion (int &p);
void funcion (int *p);

En el primer caso debes hacer esto
p=3;
y en el segundo caso debes hacer esto
*p=3;

Si tienes

int a;

en el primer caso debes llamar asi

funcion (a);

y en el segundo asi

funcion (&a);

En el caso de que tengas void funcion (int *p);

No es lo mismo esto

int a;
funcion (&a);

que esto

int *a;
funcion (a);

El primer caso esta bien, el segundo esta mal porque a está sin inicializar. Deberías hacer algo como esto

int *a;
a= new int;
funcion (a);
delete a;

Y finalmente un tema más delicado, en http://www.geocities.com/chuidiang/funciones/punteros.html echa un ojo al apartado titulado Paso de punteros por parámetro.

Se bueno.