Mailing List Archive

Support open source code!


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tlug: gcc question



"Drew C. Poulin" <poulin@example.com> writes:

> I'd like to continue to use gcc and xxgdb for some C classes I've
> been taking, but I seem to have encountered a difference in how gcc
> handles * char compared with how the MSVC++ compiler handles it.  An
> example is the code fragment below. gcc gives me a segmentation error when
> it runs, while MSVC++ doesn't.

> Apparently the problem occurs when gets() tries to access *lname at
> 0x0.

[...]

> #include<stdio.h>
> 
> 
> main(){
>   
>   char *fname, *lname;
>  
>   puts("Enter fname:\n");
>   gets(fname);
>   puts("Enter lname:\n");
>   gets(lname);
>  printf("First name: %s\tLast name: %s\n", fname, lname);
> 
> }

you might want to make sure that `fname' and `lname' point somewhere
where you have allocated some space, big enough to hold the strings
you want to enter.

For example:

        char fname[1024];
        char lname[1024];

should work. Or use malloc(). And better don't use `gets'. Quote from
the libc.info file:

     *Warning:* The `gets' function is *very dangerous* because it
     provides no protection against overflowing the string S.  The GNU
     library includes it for compatibility only.  You should *always*
     use `fgets' or `getline' instead.  To remind you of this, the
     linker (if using GNU `ld') will issue a warning whenever you use
     `gets'.


-- 
Mike Fabian   <mike.fabian@example.com>   <mike@example.com>

-------------------------------------------------------------------
Next Technical Meeting: January 14 (Fri) 19:00
* Topic: "glibc - current status and future developments"
* Guest Speaker: Ulrich Drepper (Cygnus Solutions)
* Place: Oracle Japan HQ 12F Seminar Room (New Otani Garden Court)
-------------------------------------------------------------------
more info: http://www.tlug.gr.jp        Sponsor: Global Online Japan


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links