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

Responder a