gcc problem?

Jakub Jelinek jj na sunsite.ms.mff.cuni.cz
Středa Prosinec 3 16:46:35 CET 1997


> main(void)
> {
>   char *p_c; 
>   char s1[] =  "a b,c,aa-bb-cc"; /*  char *s1 = */
>    p_c = strtok(s1, " ,-");     
> }
> Takto funguje, ale kdyz nahradim s1[] pointerem *s1, tak to sice prelozi,
> ale pak "Segmentation fault (core dumped)". Proc to neni ekvivalentni? U
> Boralndu BC4.5 funguji obe verze. Zkousel jsem gcc v Linuxu, Solarisu i v
> SunOS a vsude to pada. Diky za radu, pokud vite.

To nikde neni ekvivalentni, staci prolistovat kterykoliv manual C.
Kazdopadne stringy sedi v .rodata, tudiz jsou read-only.
Zkuste -fwritable-strings, pak vam to pobezi.

Cheers,
    Jakub
___________________________________________________________________
Jakub Jelinek | jj na sunsite.mff.cuni.cz | http://sunsite.mff.cuni.cz
Administrator of SunSITE Czech Republic, MFF, Charles University
___________________________________________________________________
Ultralinux - first 64bit OS to take full power of the UltraSparc
Linux version 2.1.66 on a sparc64 machine (333.41 BogoMips).
___________________________________________________________________


Další informace o konferenci Linux