Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/21/05 18:14
Read: times


 
#99781 - Bad array index
Responding to: ???'s previous message
/*give integer as input get a string as output. 
returned strlen is fixed,=5*/
char* tostr(unsigned int num)
{
	unsigned int base;
	unsigned char rem,x;
	char buff[6];
	char *ptr=buff;
	for(x=4;x>0;--x)
	{
		base=rpt(10,x);
				
		rem=num/base;
		
		*ptr=(char)rem+0x30;
		num-=rem*base;
		ptr++;
	 }
	 *ptr=(char)num+0x30;
	 buff[6]=''; /* OOPS! */
	 return buff;
}

buff[]'s valid indices are 0 through 5. By using 6, you are likely clobbering some other variable.


List of 18 messages in thread
TopicAuthorDate
Keil C51-optimization & Pointers            01/01/70 00:00      
   Bad array index            01/01/70 00:00      
      oops!!            01/01/70 00:00      
         buff[] is auto, not static            01/01/70 00:00      
            Back to basics            01/01/70 00:00      
               Don't shoot the pianist!            01/01/70 00:00      
   Hex file size            01/01/70 00:00      
      Optimization pointers            01/01/70 00:00      
         sprintf() is fairly large            01/01/70 00:00      
         So start a new thread, then!            01/01/70 00:00      
         pls...help            01/01/70 00:00      
            I disagree            01/01/70 00:00      
      My dear Watson !            01/01/70 00:00      
         One size fits all            01/01/70 00:00      
   bin = hex / 2.8            01/01/70 00:00      
      hexmap            01/01/70 00:00      
      A bit of a sweeping generalisation!!            01/01/70 00:00      
   Keil C51-optimization & Pointers            01/01/70 00:00      

Back to Subject List