Javier,
Los strings que pongas entre "" estan en el data segment y son
inmodificables.
Para hacer lo que queres hacer necesitas reservar memoria y copiar
el string.
Solo existe una 'excepcion' que seria
char s[] = "Hola Mundo\n";
Esta linea lo que hace es reservar memoria en el stack y copiar el
string, pero en todos los demas casos el = solo copia el puntero y no
el string.
Saludos
2008/2/21 Javier Persico <[EMAIL PROTECTED]>:
> Buenas Gente!.
>
> Tengo el siguiente código:
>
> 1 int main ()
> 2 {
> 3 char *s[] = {"holas", " " , "mundo"};
> 4 s[0][4] = 0; /* Esta linea pone el \0 en lugar de la s de holas */
> 5 printf("%s%s%s",s[0], s[1], s[2]); /* Debería imprimir hola mundo */
> 6 return 0;
> 7 }
>
> Esto compila correctamente pero da un error en tiempo de ejecución en la
> línea 4.
> No permite modificar.
> ¿Porque me está dando este error?
> ¿Como se pueden modificar las cadenas?.
>
> Saludos!
>
>
> _______________________________________________
> Lista de correo Programacion.
> [email protected]
> http://listas.fi.uba.ar/mailman/listinfo/programacion
>
>
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion