내 잡다한 노트

memset, strcpy 본문

Language/C언어

memset, strcpy

peanutwalnut 2023. 3. 20. 14:00

# memset : memory setting. 즉, 메모리를 (특정 값으로) 세팅한다.

이 함수는 메모리의 내용을 원하는 크기만큼 특정 값으로 세팅할 수 있는 함수이다.

헤더파일은 memory.h 또는 string.h 둘 중 아무거나

 

void* memset (void* ptr, int value, size_t num)

첫번째 인자 *ptr은 세팅하고자 하는 메모리의 시작 주소. 포인터가 위치하는 자리

두번째 인자 value는 메모리에 세팅하고자 하는 값을 넣는다.

세번째 인자는 길이를 뜻하고 바이트 단위이다. 보통, 길이 * sizeof(데이터타입) 의 형태로 작성.

리턴값은 성공하면 ptr을 반환, 실패하면 null을 반환

 

ex) 문자 배열 변경, 배열 초기화

주의점) 0과 char 타입이 아닌 값을 넣어 세팅하려할땐 우리가 원하는 값으로 세팅할 수 없으니 0과 char타입만 사용하자.

 

# strcpy

문자열을 복사하는 함수이다.

헤더파일은 string.h

함수 원형 : char* strcpy (char* dest, const char* origin)

origin에 있는 문자열 전체를 dest로 복사를 하는 함수이다.

주의해야 할 점 : 문자 배열에는 \0이 끝에 있고 이걸로 문자열의 끝을 판단한다.

이때, strcpy로 복사를 하게 되면 문자열의 끝을 나타내는 \0까지 복사가 된다.

 

tmi) 파이썬에서는 string이 immutable해서 string[7] = 'a'로 바꿀 수 없었지만 c에선 배열 형태라 된다.

 

 

 

레퍼런스 : https://blockdmask.tistory.com/441