SoloCodigo
Programación General => C/C++ => Mensaje iniciado 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!
-
*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.
-
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!