ÇÁ·Î±×·¡¹Ö

 3200, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   jeongmin9946
   c¾ð¾î ¸Þ¸ð¸® º¹»ç°ü·Ã

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=6542 [º¹»ç]


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

  Hit : 5116     Date : 2015/07/12 09:36



    
´Ï¿ÍÅ丮 À½ void*ÇüÀ» »ç¿ëÇÏ¸é ´õ ¹ü¿ëÀûÀÌ¶ó¼­ ±×·±°Ô ¾Æ´Ò±î¿ä?
(char*)¸¦ »ç¿ëÇÏ´Â°Ç 1byte¾¿ À̵¿ÇÏ¿© º¹»ç¸¦ Çϱâ À§ÇØ ±×·¯´Â°Í °°½À´Ï´Ù.
2016/01/15  
menial return ptr;
¶§¹®ÀÌ¸ç º¯¼ö ¼±¾ð½Ã ±×¸®ÇÏ¿´°í, ¸ÞÀÎÇÔ¼ö¿¡¼­ »ç¿ëÇϱâ À§ÇÑ °ÍÀε¥ »ç¿ë ¾ÈÇÔ
2018/11/21