Tema: Ayuda en C
Ver Mensaje Individual
  #18 (permalink)  
Antiguo 17/08/2006, 18:29
Avatar de Instru
Instru
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 2 meses
Puntos: 52
Cita:
ok. Pero si por ej en vez de :

"return valor;" pones "return *valor", t devolvera el valor al k apunta el puntero no?¿
Simple. return valor; te regresaria la direccion(lo que la funcion debe regresar por el int *funcion). return *valor; te regresa el valor, no la direccion, y pues esto es un errorsote ya que la funcion DEBE regresar punteros y no valore y si tu regresas un valor, este valor se usara como una direccion que lo ams seguro es que no ese "apartada" y puedas caer en uno de los errores de desbordamiento explicado en la faq.


Cita:
Y otra cosa, cuando pasas punteros a una funcion, no puedes acerlo asi?¿

funcion(*p), tienes k acerlo asi funcion(&p)?¿? porke?¿

No os preguntare asta entro d un tiempo, pq me voi de vacac. una semanita :P.
Al llamar la funcion "funcion(*p)" asi como tal, lo que estas poniendo como argumento es el valor, no la direccion, y si la funcion toma este argumento como direccion, vuelves a cae en el mismo problema de usar memoria "no apartada". Todo esto siempre y cuando p sea un puntero ya que si es una variable comun, pues *p no tiene sentido y posiblemente te daria un error de compilacion.

funcion(&p) lo que hace es darle a la funcion la direccion, no el valor p. Y como la funcion pide una direccion, pues esto es correcto.

Un consejo para cuando regreses, estudia mas lo basico antes de irte a los punteros, en serio.

Saludos