#include<stdio.h>
#include <stdlib.h>
#include <string.h>
struct tagM1
{
int x;
int y;
char buffer[30];
};
void* My_memcpy(void * dst, const void *src, unsigned int count);
void main (void)
{
struct tagM1 x1,x2;
x1.x=5;
x1.y=10;
strcpy(x1.buffer,"memory copy");
printf("%d %d %d \n", sizeof(x1.x),sizeof(x1.y),sizeof(x1.buffer));
My_memcpy(&x2,&x1,sizeof(x1));
puts(x2.buffer);
printf("%d %d \n", x2.x, x2.y);
}
void* My_memcpy(void * dst, const void *src, unsigned int count)
{
void * ptr= dst;
while(count--)
{
*(char*)dst = *(char*)src;
dst= (char*)dst +1 ;
src= (char*)src +1 ;
}
return ptr;
}
ҽ ϴ Լ ε.
Լ
void* My_memcpy(void * dst, const void *src, unsigned int count)
⼭ void* ϳ?
ü ϴ Լ void* °ǰ?
while ȿ (char*) void* ڷ ƿͼ ڷ ִ Ȱΰ??
x2 ü x,y 簡 ƴµ int
Ѱ °Ű ? 簡 Ȱǰ ? |