• Viernes 8 de Noviembre de 2024, 16:31

Autor Tema:  Parametros Por Referencia  (Leído 886 veces)

biobcn

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Parametros Por Referencia
« en: Jueves 8 de Noviembre de 2007, 22:33 »
0
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!

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Parametros Por Referencia
« Respuesta #1 en: Jueves 8 de Noviembre de 2007, 22:40 »
0
*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.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

biobcn

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Parametros Por Referencia
« Respuesta #2 en: Viernes 9 de Noviembre de 2007, 01:02 »
0
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!