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

Punteros por referencia

Estas en el tema de Punteros por referencia en el foro de C/C++ en Foros del Web. Buenas, tengo una duda sobre el paso de un puntero como parámetro. Mi intención es pasar un puntero inicializado a null a una función, esta ...
  #1 (permalink)  
Antiguo 15/02/2008, 05:34
 
Fecha de Ingreso: noviembre-2007
Mensajes: 21
Antigüedad: 16 años, 6 meses
Puntos: 0
Punteros por referencia

Buenas, tengo una duda sobre el paso de un puntero como parámetro.
Mi intención es pasar un puntero inicializado a null a una función, esta función me reserva un tamaño determinado de memoria y lo rellena con una cadena.
Ahora bien, el problema está en que en la función externa el puntero sigue apuntando a NULL y no a la memoria reservada.

Código:
/* Función externa */
char *nombre_param=NULL;
dame_nombre(nombre_funcion,param_actual,nombre_param);
sprintf(cad_aux,"\t\t<param name=\"%s\" value=\"%s\" />\n",nombre_param,$3);

/*Función dame_nombre*/

void dame_nombre(char nombre_funcion[20], int posicion, char *n_param){

n_param=(char *)malloc(strlen(p->parametros->lista_param[posicion].name)+1);
strcpy(n_param,p->parametros->lista_param[posicion].name);
}
Espero que se entienda la porción de código xq si pego el resto os puedo aburrir xD.
Gracias
  #2 (permalink)  
Antiguo 15/02/2008, 08:56
 
Fecha de Ingreso: febrero-2007
Mensajes: 163
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Punteros por referencia

Si estas en C++ podrias pasar una referencia del puntero: char& *n_param o bien si es C puro un puntero a puntero o sea char** n_param y cambiar el llamado a &nombre_param.
  #3 (permalink)  
Antiguo 15/02/2008, 09:12
 
Fecha de Ingreso: noviembre-2007
Mensajes: 21
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Punteros por referencia

Perfecto!! Muchas gracias.
Al final hice lo de declarar el doble puntero ya que lo que uso es c.
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 02:44.