[42seoul] memccpy는 어떤 함수일까?

개발하는 곰댕이·2021년 4월 9일
0

42Seoul

목록 보기
19/45
  • include

#include <string.h>
void *memccpy(void *dest, const void *src, int c, size_t n);
  • 인자

    • dest
      복사가 진행될 목적지이다. void * 의 형태로 string뿐 아니라 다른 값도 들어올 수 있다.
    • src
      우리가 복사를 해야하는 값이 들어있는 포인터이다.
    • c
      복사를 진행하다가 캐릭터 c를 만나면 해당 부분까지만 복사를 진행하고 그 다음 포인터를 리턴한다.
    • n
      src에서부터 n byte만큼 dest에 복사를 한다.

1. memccpy란??

동작은 memmpy와 거의 동일하다. 한가지 다른 점이 있다면 복사를 진행하다가 캐릭터 c를 만나게 되면 해당 부분까지만 복사를 진행하고 그 다음 포인터를 리턴하고 만약 c를 찾지 못한다면 n만큼 복사하고 NULL을 리턴한다.

위 사진처럼 c = e라면 e까지만 복사를 진행하고 e다음 번지인 0x3을 리턴한다. 만약 c가 src에 없다면 동작은 memcpy와 동일하되 return값이 NULL이 된다.

2. 사용 예제

3. 리턴 값

src안에서 c를 찾는다면 그 다음 포인터를 리턴하고 그게 아니라면 NULL을 리턴한다.

0개의 댓글