#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ÇüÀ¸·Î º¹»ç
ÇÑ°Ç ¾ø´Â°Å°°Àºµ¥ ¾î´À ±¸°£? ¿¡¼ º¹»ç°¡ µÈ°Ç°¡¿ä ? |