Computer Chess Club Archives


Search

Terms

Messages

Subject: question about error that checking bound found and I do not understand

Author: Uri Blass

Date: 10:49:56 01/08/03


Here is the descreption of the error.

Subscript Overrun: Array index value 44 exceeds array index limit of 8.

Current Call Stack
evalchange	c:\unzipped\movei257source\evaluate.c	213
evalmovewithoutpawns	c:\unzipped\movei257source\evaluate.c	312
evalmove	c:\unzipped\movei257source\evaluate.c	316
makemove	c:\unzipped\movei257source\boardi.c	4834
makeandprintpvmove	c:\unzipped\movei257source\main.c	677
xboard	c:\unzipped\movei257source\main.c	1237
main	c:\unzipped\movei257source\main.c	414
mainCRTStartup	crt0.c	206
	C:\WINNT\system32\KERNEL32.dll!0x00017d03


I do not understand what is the error because I do not see an array with limit
of 8.

The command that movei was supposed to do is

if (color(from)==LIGHT)
		change=pcsq[piece(from)][63-to]-pcsq[piece(from)][63-from];

I have the following defintion in def.h


#define piece(target) ((info[target])&7)
#define color(target) (((info[target])>>3)&3)

I also have
int PADDED_info[80];
int * const info = PADDED_info+8;

in data.c

and
extern int * const info;
in data.h
It means that practically I can call info[i] for every -8<=i<=71

I thought maybe a problem in pcsq but I have in data.c

int pcsq[6][64]=

I also have in data.h
extern int pcsq[6][64];

Uri



This page took 0 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.