Cisco Systems Interview Question
Software Engineer / Developersvoid * memcpy(void * dst, void * src, size_t count)
; {
; void * ret = dst;
;
; if (dst <= src || dst >= (src + count)) {
; /*
; * Non-Overlapping Buffers
; * copy from lower addresses to higher addresses
; */
; while (count--)
; *dst++ = *src++;
; }
; else {
; /*
; * Overlapping Buffers
; * copy from higher addresses to lower addresses
; */
; dst += count - 1;
; src += count - 1;
;
; while (count--)
; *dst-- = *src--;
; }
;
; return(ret);
; }
void memcpy( void *pDst, void *pSrc, int len )
- Anonymous February 15, 2010{
int i;
if( pDst == NULL || pSrc == NULL )
return;
for( i=0; i<len; i++ )
{
((unsigned char*)pDst)[i] = ((unsigned char*)pSrc)[i];
}
}