Foros del Web » Programación para mayores de 30 ;) » C/C++ »

modificar valor de un puntero

Estas en el tema de modificar valor de un puntero en el foro de C/C++ en Foros del Web. Hola. Mi problemas es que no se como modificar el valor de un puntero dentro de una funcion y que este no cambie su valor ...
  #1 (permalink)  
Antiguo 23/04/2009, 13:13
poi
 
Fecha de Ingreso: octubre-2008
Mensajes: 73
Antigüedad: 15 años, 6 meses
Puntos: 2
modificar valor de un puntero

Hola. Mi problemas es que no se como modificar el valor de un puntero dentro de una funcion y que este no cambie su valor otra vez fuera. Es decir pasar el propio puntero por referencia. A ver si alguien me echa una mano.
Gracias.
  #2 (permalink)  
Antiguo 23/04/2009, 13:20
 
Fecha de Ingreso: abril-2009
Mensajes: 27
Antigüedad: 15 años
Puntos: 0
Respuesta: modificar valor de un puntero

declara el puntero de manera global fuera de todas las funciones y asi lo podras usar en cualquier funcion con el valor que se le asigne
  #3 (permalink)  
Antiguo 24/04/2009, 15:39
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: modificar valor de un puntero

Te dejo unos BURDOS ejemplos; doble puntero:

Código:
void unaCadena(char **s)
{
  *s = (char*)malloc(32);
  memset(*s, 0, 32);
  strcpy(*s, "HOLA");
}
Puntero a referencia (C++):
Código:
void unaCadena(char *&s)
{
  s = (char*)malloc(32);
  memset(s, 0, 32);
  strcpy(s, "HOLA");
}
Para probarlo (en el segundo caso saca el ampersand - & - antes de ptr):
Código:
void main()
{
  char *ptr = 0;
  unaCadena(&ptr);
  printf("%s\r\n", ptr);
}
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:18.