반응형
memcpy
- memcpy 함수는 1번 메모리 지역(dest)으로 2번 메모리 지역(src)의 데이터를 n바이트만큼 복사하는 함수이다.
프로토타입
void *my_memcpy(void *dst, const void *src, size_t n);
파라미터(인자)
void *destination
1번 메모리지역, 카피당해서 덮어 씌워질 공간
const void *source
2번 메모리지역, 이곳의 데이터를 dest에 붙여넣음
size_t number
몇 바이트 만큼 복사할지!
변수
unsigned long long turtle;
index다. n바이트 만큼 복사하도록 도와줄 것이다.
인덱스는 솔직히 누구나 다 알아보니까 나만의 개성을 담고 싶어서 거북이로 하였다.
unsigned char *ptr_dest;
dest의 포인터이다.
dest가 void 포인터형으로 들어와서 자료형이 정해진 포인터인 이친구가 필요하다.
unsigned char *ptr_src;
src의 포인터이다.
src가 void 포인터형으로 들어와서 자료형이 정해진 포인터인 이친구가 필요하다.
구현 코드
void *my_memcpy(void* dest, const void* src, size_t num)
{
unsigned long long turtle;
unsigned char *ptr_dest;
unsigned char *ptr_src;
turtle = 0;
ptr_dest = (unsigned char *)dest;
ptr_src = (unsigned char *)src;
while (turtle < num)
{
ptr_dest[turtle] = ptr_src[turtle];
turtle++;
}
return(dest);
}
memccpy
memccpy는 memcpy와 같은 방식으로 복사를 하다가 특정c(캐릭터)를 찾으면 그 주소를 반환하고, 없으면 다 복사하고 널포인터를 반환함
프로토타입
void *my_memccpy(void *dest, void const *src, int c, size_t n)
파라미터(인자)
void *destination
1번 메모리지역, 카피당해서 덮어 씌워질 공간
const void *source
2번 메모리지역, 이곳의 데이터를 dest에 붙여넣음
int c
* 찾을 특정 캐릭터값
size_t number
몇 바이트 만큼 복사할지!
변수
변수는 memcpy와 같다.
unsigned long long turtle;
index다. n바이트 만큼 복사하도록 도와줄 것이다.
인덱스는 솔직히 누구나 다 알아보니까 나만의 개성을 담고 싶어서 거북이로 하였다.
unsigned char *ptr_dest;
dest의 포인터이다.
dest가 void 포인터형으로 들어와서 자료형이 정해진 포인터인 이친구가 필요하다.
unsigned char *ptr_src;
src의 포인터이다.
src가 void 포인터형으로 들어와서 자료형이 정해진 포인터인 이친구가 필요하다.
구현 코드
void *my_memccpy(void *dest, void const *src, int c, size_t n)
{
unsigned char* ptr_dest;
unsigned char* ptr_src;
unsigned long long turtle;
ptr_dest = (unsigned char *)dest;
ptr_src = (unsigned char *)src;
turtle = 0;
while(turtle < n)
{
ptr_dest[turtle] = ptr_src[turtle];
if (ptr_dest[turtle] == c)
return((void *)(ptr_dest + turtle + 1));
turtle++;
}
return(NULL);
}
읽어주셔서 감사합니다.
마크다운 환경에서 작성했습니다.
이글을 쓴 저는 아직 공부하는 학생이라 틀린 부분이 있을 수 있습니다. 양해 부탁드립니다. 아시는 것이 있다면 댓글로 수정 요청 바랍니다.
반응형
'세상을 바꿀 소프트웨어 공부 > C언어' 카테고리의 다른 글
0. 코딩 강의는 아무나 해도 되나? - 소개 (2) | 2020.12.27 |
---|---|
c언어 memset, bzero함수 구현! (0) | 2020.12.26 |
C언어 ctype.h 모든 함수 구현하기 (설명, 용도, 변수, 리턴값) (0) | 2020.12.24 |