Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #147698

Re: What are the odds? (a continuation of One works ...)

From Ian Collins <ian-news@hotmail.com>
Newsgroups comp.lang.c
Subject Re: What are the odds? (a continuation of One works ...)
Date 2019-11-07 16:30 +1300
Message-ID <h2hhf7Fq967U11@mid.individual.net> (permalink)
References (3 earlier) <vvv5sehh7oil3eb5dft8dun7s4t1rbt4h7@4ax.com> <voGwF.93833$vD7.57507@fx06.iad> <g4g6se5u1ggsmecioggck2k7ve59pfdbbp@4ax.com> <2VHwF.97943$_i.39059@fx25.am4> <ln36f05q6t.fsf@kst-u.example.com>

Show all headers | View raw


On 07/11/2019 16:19, Keith Thompson wrote:
> Bart <bc@freeuk.com> writes:
>> On 06/11/2019 22:23, Barry Schwarz wrote:
>>> On Wed, 6 Nov 2019 15:52:28 -0500, DFS <nospam@dfs.com> wrote:
>>>>      char charset[62] =
>>>> "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
>>> After numerous examples in your comp.lang.c posts (where I have
>>> redirected this response since we are not discussing the odds any
>>> more) of calculating charsetLen correctly, you have chosen to use a
>>> different method.  You have tried to pass charset to strlen in
>>> complete violation of the requirements that function imposes.
>>>
>>> It is not sufficient to simply pass a pointer to char to strlen.
>>> strlen requires that the pointer actually point to a string.  In order
>>> for an array of char to contain a string, the array must contain at
>>> least one '\0' to properly terminate the string.  charset does not.
>>
>> A simple fix is to get rid of the '62':
>>
>>    char charset[] =
>>     "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
> 
> The only thing the code does that depends on charset containing a
> valid string is the single (incorrect) call to strlen().  If you
> replace `strlen(charset)` by `sizeof charset` then there's no need
> to nul-terminate it.
Or do what I did in my C++ version and use a compile time constant for 
the size.  That way the compile will break if you miss out a character.

-- 
Ian.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Re: What are the odds? (a continuation of One works ...) Barry Schwarz <schwarzb@delq.com> - 2019-11-06 14:23 -0800
  Re: What are the odds? (a continuation of One works ...) Bart <bc@freeuk.com> - 2019-11-06 22:35 +0000
    Re: What are the odds? (a continuation of One works ...) luser droog <luser.droog@gmail.com> - 2019-11-06 17:09 -0800
    Re: What are the odds? (a continuation of One works ...) Keith Thompson <kst-u@mib.org> - 2019-11-06 19:19 -0800
      Re: What are the odds? (a continuation of One works ...) Ian Collins <ian-news@hotmail.com> - 2019-11-07 16:30 +1300
        Re: What are the odds? (a continuation of One works ...) Bart <bc@freeuk.com> - 2019-11-07 10:59 +0000
        Re: What are the odds? (a continuation of One works ...) David Brown <david.brown@hesbynett.no> - 2019-11-07 14:27 +0100
  Re: What are the odds? (a continuation of One works ...) DFS <nospam@dfs.com> - 2019-11-06 18:09 -0500
    Re: What are the odds? (a continuation of One works ...) Keith Thompson <kst-u@mib.org> - 2019-11-06 19:26 -0800
      Re: What are the odds? (a continuation of One works ...) Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-11-07 11:57 +0000

csiph-web