ft_memcpy

one·2020년 12월 31일
0

✅memcpy

Src가 가리키는 곳 부터 Size바이트 만큼 Dst이 가리키는 곳으로 복사

💾함수 원형

void *memcpy(void *Dst,const void *Src,size_t Size)

💻Parameters

  • Dst : 데이터 복사될 시작 주소. void*형으로 변환되어서 전달
  • Src : 복사할 데이터들이 위치한 주소. void*형으로 변환되어서 전달
  • Size : 복사할 데이터의 바이트 수.

💻Return value

  • 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()

memcpy는 지정된 크기만큼 복사.

strcpynull값을 만나게 되면 멈춤.

profile
늘 호기심을 갖고, 새로운 것에 도전할 것.

0개의 댓글