用c语言实现内存拷贝函数,C/C++ 自己编写内存拷贝函数:memcpy()

1.写一个函数,完成内存之间的拷贝。[考虑问题是否全面]

void* memcpy( void *dest, const void *src, size_t count )

{

char* pdest = static_cast( dest );

const char* psrc = static_cast( src );

if( pdest>psrc && pdest

{

for( size_t i=count-1; i!=-1; --i )

pdest[i] = psrc[i];

}

else

{

for( size_t i=0; i

pdest[i] = psrc[i];

}

return dest;

}

下题展示为什么要考虑那种情况:

编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefgh”。

答案之一:

void LoopMove ( char *pStr, int steps )

{

int n = strlen( pStr ) - steps;

char tmp[MAX_LEN];

memcpy( tmp, pStr + n, steps );

memcpy(pStr + steps, pStr, n );

memcpy(pStr, tmp, steps );

}

你可能感兴趣的:(用c语言实现内存拷贝函数)