Deutsch   English   Français   Italiano  
<865xrsaega.fsf@linuxsc.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Tim Rentsch <tr.17687@z991.linuxsc.com>
Newsgroups: comp.lang.c
Subject: Re: size_t best practice
Date: Thu, 22 Aug 2024 06:12:53 -0700
Organization: A noiseless patient Spider
Lines: 29
Message-ID: <865xrsaega.fsf@linuxsc.com>
References: <VdCcne2MOeshN1z7nZ2dnZfqnPWdnZ2d@brightview.co.uk> <va275j$3d6tp$1@dont-email.me> <86ed6h9cxm.fsf@linuxsc.com> <slrnvce7ls.l93.ike@iceland.freeshell.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Date: Thu, 22 Aug 2024 15:12:54 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="dd674af37156d5461d600da65dab9de0";
	logging-data="476774"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX194zwPwTDRUDJRV2n4FPaW1o9sCXNzQDwk="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:tNAnSKReC+okjdiJAY+awugjeqQ=
	sha1:iI9QFH8xw/4Ba9lPu9LeIDoSnCs=
Bytes: 1964

Ike Naar <ike@sdf.org> writes:

> On 2024-08-22, Tim Rentsch <tr.17687@z991.linuxsc.com> wrote:
>
>> Andrey Tarasevich <andreytarasevich@hotmail.com> writes:
>>
>>> We can immediately apply the pattern I demonstrated above to this
>>> and get
>>>
>>>   for (size_t i = v->_size - 1; i != index - 1; --i)
>>>     v->_values[i + 1] = v->_values[i];
>>>
>>> Done.  No need for an extra safeguard.
>>
>> Better (please ignore cosmetic layout differences):
>>
>>     for( size_t i = v->_size;  i > index;  i--  ){
>>         v->_values[i] = v->_values[i-1];
>>     }
>
> Or even get rid of the for loop, and use memmove() :
>
>   memmove(v->_values + index + 1, v->_values + index,
>           (v->_size - index) * sizeof *v->_values);

Yes, although that ignores the context of the question
that was asked, about how to deal with loop index
variables in the presence of possible "underflow".