这里主要讲解memcpy,memmove和strcpy三个拷贝函数。
memcpy与memmove都是对内存进行拷贝可以拷贝任何内容,而strcpy仅是对字符串进行操作。
1.memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝N个字节到目标dst所指的内存地址的起始位置中。
2.memmove函数的功能同memcpy基本一致,但是当src区域和dst内存区域重叠时,memcpy可能会出现错误,而memmove能正确进行拷贝。
memcpy函数的实现
void* _memcpy(void* dest, const void* src, size_t count)
{
assert(src != nullptr&&dest != nullptr);
//判断dest指针和src指针是否为空,若为空抛出异常
char* tmp_dest = (char*)dest;
const char* tmp_src = (const char*)src;
//将指针dest和指针src由void强转为char,
//使得每次均是对内存中的一个字节进行拷贝
while (count--)
*tmp_dest++ = *tmp_src++;
return dest;
}
strcpy的实现
char* _strcpy(char* dst,const char* src)