[Programación] Re: [Programaci�n] Re: [Prog
ramación] c, array, punteros
federico luna
programacion@lugro.org.ar
Mon, 20 Sep 2004 16:01:26 -0300
jose luis tiene razon, te falto alocar espacio para el mensaje.
pero ojo con scanf que solo te conviene usarlo cuando estes 100%
seguro que la entrada que vas a tener es la que deseas. Y por supuesto
eso nunca pasa.
Una alternativa es usar fgets()
char s[80];
printf("Ingrese string: ");
fgets(s, sizeof(s), stdin);
printf("\n\nUd ingreso: %s", s);
saludos
-fedel
On Sat, 18 Sep 2004 21:24:45 -0300, José Luis Diaz <jose@citynet.net.ar> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On Saturday 18 September 2004 21:04, Mauro Macagno wrote:
> > Hola gente alguien me puede decir porque algo tan sencillo como esto:
> >
> > char *mensaje;
> >
> > scanf("%s",&mensaje);
> >
> > printf("%s",mensaje);
> >
> > me tira una violacion de segmento.
>
> por que *mensaje apunta a cualquier lado :) tendría que apuntar a algún lugar
> que tengas reservada memoría :)
> ej.
> char mensaje[20]; // mensaje es un puntero al primer elemento.
>
> char *mensaje;
> mensaje = (char *)malloc(sizeof(char) * 20);
>
> demás frutas con alloca, quedan a discreción.
>
> aparte sería:
> scanf("%s",mensaje); // ya que mensaje es un puntero :)
>
> te recomiendo que veas el capitulo 5 del libro "El Lenguaje de programación
> C", de Kernghan y Ritchie.
>
> - -Jx
>
> - --
> Jose Luis Diaz - jose<at>rtfm.org.ar</at> /"\ ASCII Ribbon Campaign
> GNU/Linux Registered User #138499 \ / No HTML in mail or news!
> RTFM! - http://rtfm.org.ar X
> "Kernel Panic - No signature found" / \
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.4 (GNU/Linux)
>
> iD8DBQFBTNHPM4NSjXvNJ1cRAjQlAJ9oxe4wVTaOSh2Jf37902FDXZVS/QCgrIpA
> rXW3HjPkMJfRKRN9vxHgogI=
> =kHRX
> -----END PGP SIGNATURE-----
>
>
>
> _______________________________________________
> Programacion mailing list
> Programacion@lugro.org.ar
> http://www.lugro.org.ar/mailman/listinfo/programacion
>