C언어

[C언어] memcpy() 함수

_minit 2024. 10. 10. 08:09

memcpy() 함수는 C 프로그래밍 언어에서 메모리 블록을 복사하는 함수이다. 원본 메모리 블록에서 지정한 크기만큼의 데이터를 목적지 메모리 블록으로 그대로 복사할 때 사용된다.

 

사용법

#include <string.h>

void *memcpy(void *dest, const void *src, size_t n);

 

매개변수

  • dest : 데이터를 복사할 목적지 메모리 블록의 시작 주소이다.
  • src : 복사할 원본 메모리 블록의 시작 주소이다.
  • n : 복사할 바이트 수를 나타낸다.

반환값

  • 복사된 목적지 메모리 블록의 시작 주소(dest)를 반환한다.

 

예제1)

#include <stdio.h>
#include <string.h>

int main() {
    char src[] = "Hello, World!";
    char dest[20];

    // src 배열의 내용을 dest로 복사
    memcpy(dest, src, strlen(src) + 1);  
    // +1을 하는 이유는 null-terminator('\0')까지 복사하기 위함

    // 복사된 내용을 출력
    printf("Source: %s\n", src);
    printf("Destination: %s\n", dest);

    return 0;
}

 

출력 결과

Source: Hello, World!
Destination: Hello, World!

 

주요 특징 및 주의사항

  • 바이트 단위 복사 : memcpy() 는 데이터 타입을 신경 쓰지 않고 바이트 단위로 복사한다. 구조체, 배열, 문자열 등 모든 데이터를 복사할 수 있다.
  • 메모리 영역 겹침 : 원본과 목적지 메모리 영역이 겹치면 오류가 발생할 수 있다.

 

728x90

'C언어' 카테고리의 다른 글

[C언어] 쉬프트 연산과 비트 연산  (0) 2024.10.10
[C언어] (void *) 포인터란?  (0) 2024.10.10
[C언어] memset() 함수  (0) 2024.10.10
[C언어] realloc() 함수  (0) 2024.10.08
[C언어] calloc() 함수  (0) 2024.10.08