To Walter, about char[] initialization by FF
Oskar Linde
oskar.lindeREM at OVEgmail.com
Wed Aug 2 00:11:48 PDT 2006
Andrew Fedoniouk wrote:
>> But maybe that's because I never leave things at their defaults. It's
>> like writing a story where you expect the reader to think everyone has
>> brown eyes unless you say otherwise.
>>
>
> Consider this:
>
> char[6] buf;
> strncpy(buf, "1234567", 5);
>
> What will be a content of you buffer?
>
> Answer is: 12345\xff . Surprise? It is.
Not really surprising. Had you compiled this in a C program (you are
using C functions after all), you would have gotten:
12345\x?? <- some garbage. Not a zero terminated string.
My manual for strncpy explicitly states:
" if there is no null byte among the first n
bytes of src, the result will not be null-terminated."
/Oskar
More information about the Digitalmars-d
mailing list