SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: biobcn en Jueves 8 de Noviembre de 2007, 22:33

Título: Parametros Por Referencia
Publicado por: biobcn en Jueves 8 de Noviembre de 2007, 22:33
hola!

estoy intentando programar en C, y no consigo pasar una cadena de caracteres por referencia a otra función. Que hago mal?

void referencia(char *ptr)
{
   while (*ptr != '\0')
   {
      *ptr = "a";
   }
}

int main(){
        char buffer[100] = "hola";
        referencia(&buffer);
        printf("%s",buffer);
        return 0;
}

Gracias de antemano!
Título: Re: Parametros Por Referencia
Publicado por: Eternal Idol en Jueves 8 de Noviembre de 2007, 22:40
*ptr = "a";

ptr es un puntero a caracter, tenes que usar un caracter ('w' por ejemplo) y no una cadena ("a").

El while no tiene fin ... mejor incrementa ptr.

char buffer[100] = "hola";

No podes declararlo asi,  "hola" no ocupa ese tamaño, podes usar:
char buffer[] = "hola";

Y por ultimo referencia(&buffer);, saca el operador & y listo.
Título: Re: Parametros Por Referencia
Publicado por: biobcn en Viernes 9 de Noviembre de 2007, 01:02
Muchas gracias, aunque no me funcionaba ya que, a parte de los errores que me has corregido, estaba ejecutando la funcion en el hijo de un fork(), y supongo que por eso no afectaba la referencia.

Muchas gracias de nuevo, soys de gran ayuda!