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];
I hope that this does not only work with gcc but also with
other compilers.
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