Author: James Swafford
Date: 09:52:40 01/17/06
Go up one level in this thread
On January 17, 2006 at 12:29:21, JW de Kort wrote: >Thank you for your reply. I check the boundries of the array's but that seems to >be correct. > >Could you please clarify your response because i'am not 100% sure what you mean. > I'll try. Let me preface this with this caveat: I doubt this is your problem. :) Dann's advice is pretty sound. Let's say you are evaluating a bitwise expression "a & b". If a == 0, then ( a & b ) == 0 for any b. So, it's not necessary for the compiler to go to the trouble of figuring out what b is. In your case, a & b represent items in an array. What is really evaluated is probably implementation specific (depends on the compiler), but it wouldn't even need to fetch the item from the second array to do the bitwise comparison if your first item (a) is 0. So, possibly you are skirting a boundary bug when i==1 since your "a" is always 0. Again, I doubt that's the case in your program, but it's a possiblity. -- James > >On January 17, 2006 at 11:54:29, James Swafford wrote: > >>On January 17, 2006 at 11:27:35, James Swafford wrote: >> >>>On January 16, 2006 at 16:22:10, Dann Corbit wrote: >>> >>>>On January 16, 2006 at 16:16:13, JW de Kort wrote: >>>> >>>>>Hi all, >>>>> >>>>>In my engine i want to use the following line: >>>> >>>>#include <assert.h> >>>>... >>>> >>>> assert(kol+1 < sizeof bfZwart / sizeof bfZwart[0]); >>>>> !(bfZwart[kol+1]&bfBoven[rij]) >>> >>>That's probably it, but another (less likely) possibility is that >>>the short-circuit evaluation is not attempting fetch the value from >>>the bfBoven[] array unless kol+1 > 1 (making bfZwart[kol+1] true). >>> >>>In other words, is it the case that bfZwart[kol+1] always evaluates >>>to false? If so, I doubt the second part of the expression is even >>>evaluated. Like I said, not likely, but weird things happen. >>> >> >>By false/true I should say 'non-zero/zero', since we are dealing >>with a bitwise operator. >> >> >> >>>-- >>>James >>> >>> >>>>> >>>>>In only a few cases this lines crashes my engine. If i change the +1 to any >>>>>other value there is no problem! >>>>> >>>>>Does anybody know were i have to look for to solve this problem? I do not >>>>>understand how a comparison like the above can cause a program to crash. >>>>> >>>>>regards >>>>>Jan Willem
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.