[vox-tech] loop never exits!

Brian Lavender brian at brie.com
Thu Apr 22 02:24:15 PDT 2010


On Wed, Apr 21, 2010 at 08:16:48PM -0700, Brian Lavender wrote:
> On Wed, Apr 21, 2010 at 07:20:26PM -0700, Matthew Van Gundy wrote:
> > On 4/21/10 3:26 PM, Jeff Newmiller wrote:
> > >> There are many ways to skin a cat, here's one:
> > >>
> > >> void reverse(int forward[], int backward[], unsigned int n) {
> > >>    unsigned i = n;
> > >>    while(i-->  0) {
> > >>      backward[n-i-1] = forward[i];
> > >>    }
> > >> }
> > >
> > > This reverses and then re-reverses it.
> > 
> > Nope, just reverses it once.  I'll admit, it isn't an idiomatic 
> > construction, but it uses an unsigned index that counts down to reverse 
> > an array since that's what Brian seemed to be after.
> 
> I just want the equivalent to a reverse iterator. I think using a signed
> index value is the way to go. Then, put an invariant condition on the
> index, so that it is never negative for accessing an element in the array.
> 
> For my program, I am using Gnome's glib's GPtrArray which doens't have an
> iterator feature. I didn't expect that it would. I just used a regular
> array for my posts not to confuse the problem.
> 
> for ( i = NUM_ELEMENTS -1 ; i > 0; i--)
>   // access each element

That of course won't get all the elements. I actually meant to say.

for ( i = NUM_ELEMENTS ; i > 0; i--)
   // access each element

Ugh.

-- 
Brian Lavender
http://www.brie.com/brian/

"For every complex problem there is an answer that is clear, simple, and wrong."
- H. L. Mencken 


More information about the vox-tech mailing list