/*
用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。
memmove函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。
*/
#include<stdio.h>
#include<stdlib.h>
void *memmove(void *dest,const void *src,size_t n)
{
char * dtemp=(char *)dest;
char * stemp=(char *)src;
int i=0;
if(!dest || !src)
{
return NULL;
}
for(i=0;i<n;i++)
{
*dtemp=*stemp;
dtemp++;
stemp++;
}
return (char *)dtemp;
}
int main()//主函数验证memmove函数的功能,如果能打印出data的值,说明函数成功
{
int *sdata=NULL;
int data=8;
char *p;
int *q;
size_t n;
sdata=&data;
n=(size_t)sizeof( int);//注意此处,搬移的数量要是弄错,就无法打印出结果
p=(char *)malloc(sizeof(char)*n);
if(!p)
return 0;
q=(int *)p;
if(!(p=(char *)memmove(p,sdata,n)))
return 0;
printf("%d",*q);
system("pause");
return 1;
}
百度面试题(1)
最新推荐文章于 2024-05-03 22:26:18 发布