Sender: nate AT cartsys DOT com Message-ID: <36CA40B7.CB9807E@cartsys.com> Date: Tue, 16 Feb 1999 20:08:23 -0800 From: Nate Eldredge X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.1 i586) MIME-Version: 1.0 To: djgpp AT delorie DOT com Subject: Re: Problem with Stack Overflow References: <7adai7$ji5 AT journal DOT concentric DOT net> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp AT delorie DOT com Paradox wrote: > > I'm having a problem with a Stack Overflow ( General Protection Error) . I > Symifyed my program and was told that my errors were }s. I checked over my > code and found out that all my problems were related to one function. > > void unequip_other_weapons(void) { > int x; > for(x=0;x if(PS.weapons_array[x] == 2) { PS.weapons_array[x] = 1; } > } > } > > weapons_array is declared as int weapons_array[10]; > > Can someone tell me what the problem is, and how I can fix it? sizeof(weapons_array) == 40 (10 * sizeof(int), which is 4). Iterating to element 40 of the array is wrong. You meant to limit x at (sizeof(PS.weapons_array)/sizeof(PS.weapons_array[0])). (More change-resistant than hardcoding int.) -- Nate Eldredge nate AT cartsys DOT com