problema de punteros
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
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
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.
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.
