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 |