Src
가 가리키는 곳 부터 Size
바이트 만큼 Dst
이 가리키는 곳으로 복사
void *memcpy(void *Dst,const void *Src,size_t Size)
Dst
: 데이터 복사될 시작 주소. void*
형으로 변환되어서 전달Src
: 복사할 데이터들이 위치한 주소. void*
형으로 변환되어서 전달Dst
#include "libft.h"
void *ft_memcpy(void *dst, const void *src, size_t n)
{
size_t i;
char *dst1;
char *src1;
i = 0;
dst1 = dst;
src1 = src;
if (dst1 == src1)
return (dst1);
while(i < n)
{
dst1[i] = src1[i];
i++;
}
return (dst);
}
#include <stdio.h>
#include <string.h>
int main(){
char str[] = "memcpy test!";
char str1[30];
char str2[30];
ft_memcpy(str1, str, strlen(str)+1);
ft_memcpy(str2, "copy", 5);
printf("str: %s\nstr1 : %s\nstr2: %s\n",str,str1,str2);
return 0;
}
memcpy
는 지정된 크기만큼 복사.
strcpy
는null
값을 만나게 되면 멈춤.