>
> Dear Elias, dear Valeri
>
> Thank you for your explanation.
> I have now solved the problem by using:
> Int_t csize = strlen(opt) + 1;
> char option[csize];
>
[Valeri Fine]
Let me call your attention that your solution is still error prone
You allocated the needed space on stack.
This means the space will be automatically de-allocated and (it can be
allocated for other purpose) as soon as your code leaves the "option"
variable scope. Because you did not provide your source I have no clue
what this scope is. May be it is what you wanted . . .
> I hope that this does not only work with gcc but also with
> other compilers.
[Valeri Fine]
I hope thee smart compiler will warn as soon as you try using this
variable out of scope, however the smart guy always can defeat any
compiler :-)
Hope this helps.
>
> Best regards
> Christian
>
>
> Valeri Fine wrote:
>
> > Hello Christian
> >
> >
> >
> >>Dear Rooters
> >>
> >>I apologize for a simple non-root question, but sorrowly I have
> >>nobody else to ask:
> >>Sometimes I have statements such as the following:
> >> if (strcmp(name, "option") == 0) {
> >> char *option;
> >> option = strcpy(option, opt);
> >> }
> >>
> >>Although it is correct, I get the following compiler warning:
> >>"warning: `char*option' might be used uninitialized in this
function"
> >
> >
> > [Valeri Fine] It looks like the compiler pointed you to your bug to
be
> > fixed. That must lead to the memory corruption. "strcpy" alone
> > allocates NO extra memory.
> >
> >
> >
> >>How can I prevent such compiler warnings?
> >
> > [Valeri Fine]
> >
> >>Would it be save to write:
> >> char *option = "";
> >>(If this is not save, why?)
> >
> > [Valeri Fine]
> > Not it is NOT safe !!!
> >
> > To avoid the memory corruption you need
> >
> > char *option = new char[strlen(opt)+1];
> >
> > or something like this to make sure the memory the POINTER "option"
> > points to is allocated and it is enough to accommodate the entire
string
> > pointed by "opt" pointer.
> >
> > Hope this helps.
> >
> > Valeri
> >
> >>Thank you in advance
> >>Best regards
> >>Christian
> >>-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> >>C.h.r.i.s.t.i.a.n. .S.t.r.a.t.o.w.a
> >>V.i.e.n.n.a. .A.u.s.t.r.i.a
> >>-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> >
> >
> >
> >
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:08 MET