Nepochopeny autor

Radim Kubacki Radim.Kubacki na netbeans.com
Pátek Leden 19 16:31:31 CET 2001


On Fri, 19 Jan 2001 ivop na regionet.cz wrote:

> Peter Figuli wrote:
> >
> > Zdravim vsetkych,
> >
> > mohol by mi niekto vysvetlit, preco tento program sposobi chybu segmentacie?
> >
> > void Test( char *Text ){
> >   Text[ 0 ] = 0;
> > }
> >
> > int main( void ){
> >    char *temp="ABCD";
> >    Test( temp );
> > }
> >
> > Pritom ak riadok:
> >    char *temp="ABCD";
> > nahradim
> >    char temp[]="ABCD";
> > vsetko ide v poriadku?
>
> Jiste: ta prvni varianta alokuje misto pro "ABCD\0" v segmentu
> kodu, do ktereho samozrejme nelze zapsat !!!
>
Pokud byste nutne potreboval tu prvni variantu tak muzete pouzit volbu
prekladace:
       -fwritable-strings
              Store string constants in the writable data segment
              and don't uniquize them.  This is for compatibility
              with old programs which assume they can write  into
              string constants.  `-traditional' also has this ef
              fect.

              Writing into string constants is a very  bad  idea;
              "constants" should be constant.
Nicmene jeji popis mluvi jasne. Jestli teda vite co delate a proc to
delate je to zcela na vas.

Radim




Další informace o konferenci Linux