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