안녕하세요. 오늘은 C언어 memset, memcpy 에 대해서 포스팅해보겠습니다.
void *memset ( void *data, int value, size_t size );
memory set 의 줄임말이라고 생각하시면 됩니다.
data : 값을 세팅하고 싶은 데이터의 주소값
value : 세팅하고 싶은 값
size : 세팅하고 싶은 data 변수의 크기
목적은 메모리의 시작주소부터 입력한 size 만큼 value 값으로 세팅할 때 사용합니다.
memset 은 구조체 및 변수를 초기화하는데 사용합니다.
주로 구조체 변수를 선언하고 0 값으로 초기화 할 때 사용하게 됩니다.
typedef struct{
char name[16];
int kor;
int math;
int eng;
}Student;
void main()
{
Student st;
// 선언한 구조체 변수 st 모두 0 으로 초기화
memset(&st, 0x00, sizeof(Student));
// st 변수 사용 코드
}
void *memcpy( void *dest, void const *src, size_t size );
memcpy 는 memory copy 의 줄임말입니다.
dest : 복사할 목적지 주소값
src : 복사하고 싶은 데이터의 주소값
size : 복사할 데이터의 크기
어떤 변수의 메모리에 있는 값들을 다른 변수로 복사할 때 사용합니다.
typedef struct{
char name[16];
int kor;
int math;
int eng;
}Student;
void main()
{
Student st, new_st;
// 선언한 구조체 변수 st 모두 0 으로 초기화
memset(&st, 0x00, sizeof(Student));
// 값 입력
strncpy(st.name, "Tory", sizeof(st.name) - 1);
st.kor = 100;
st.math = 100;
st.eng = 100;
// new_st 에 st의 값을 복사
memcpy(&new_st, &st, sizeof(Student));
}
실무에서 memset 과 memcpy 는 많이 사용하는 함수입니다.
알아두면 유용합니다.
memset 은 초기 변수 선언 후 쓰레기값으로 채워져있는 데이터를 0으로 초기화 하는데 많이 사용합니다.
memcpy 는 큐(queue) 에 malloc 한 데이터를 넣어줄 때 사용하는 등 많은 곳에서 유용하게 사용됩니다.
그럼 20000.
C# Nuget ZMQ, ZMQ Recv (0) | 2020.09.01 |
---|---|
C언어 문자열 관련 함수 strcpy, strncpy, sprintf, snprintf, strcat, strncat (4) | 2020.04.13 |
11강 C언어 동적할당, malloc, free (0) | 2020.04.07 |
10강 C언어 파일 입출력, C언어 FILE (0) | 2020.02.03 |
9강 C언어 구조체 (0) | 2020.01.30 |