#include <stdio.h>
●与字符串型的拷贝函数类似的内存拷贝函数
memmove的模拟函数
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <iostream>
void *my_memmove(void *dst,const void *src,size_t num)
{
assert(dst!=NULL);
assert(src!=NULL);
if( dst>src&&dst<src+num)
{
const char*src_=(char*)src+num-1;
char*dst_=(char*)dst+num-1;
while(num>0)
{
*dst_=*src_;
dst_--;
src_--;
num--;
}
}
else
{
const char*src_=(char*)src;
char*dst_=(char*)dst;
while(num>0)
{
*dst_=*src_;
dst_++;
src_++;
num--;
}
}
}
int main()
{
char dst[32]="asdfghjkl";
int len=strlen(dst);
my_memmove(dst,dst+3,len);
printf("%s",dst);
return 0;
}
该函数实现了库函数中的memmove函数,总之还是有一些难的,对指针的操作有一定的要求,若对指针不是很熟,就很难搞了。