memset
변수 메모리 주소의 시작점으로부터 연속된 범위를 특정 값으로 지정하는 함수입니다.
memset 함수 구조
#include <string.h> void * memset ( void *s, int c, size_t n);
s 가 가리키고 있는 메모리 영역 시작점으로부터 n 바이트를 c 로 채웁니다.
memset 사용 이유
1. 수행 속도가 빠르기 때문입니다.
2. s 를 사용하기 전 내용을 비우는 작업을 해줍니다.
3. memcpy 사용 시 0x00 은 복사되지 않기 때문입니다. memset 으로 사전에 0x00 으로 할당해 두면, 더욱 안전하게 사용할 수 있습니다.
memset 사용예제
일반 C 가 아닌 Embedded SQL 소스로 구성되어 있으며, 핵심 부분을 제외한 나머지 소스는 생략되어 있습니다.
gSQL> CREATE TABLE T1 (C1 CHAR(10)); Table created. gSQL> INSERT INTO T1 VALUES ('GOLDILOCKS'); 1 row created.
#include <stdio.h> #include <string.h> EXEC SQL BEGIN DECLARE SECTION; char sC1[10+1]; EXEC SQL END DECLARE SECTION; memset( sC1, 0x00, sizeof(sC1) ); // sC1 변수의 메모리 시작주소부터 sC1 변수의 크기만큼 0x00 으로 채웁니다. EXEC SQL SELECT C1 INTO :sC1 FROM T1; printf("sC1 = %s\n", sC1); ...
sC1 = GOLDILOCKS
'Computer Language > C' 카테고리의 다른 글
[C] malloc, free 로 메모리 동적 할당 해제하기 (0) | 2018.06.27 |
---|---|
[C] memcmp 메모리 블록을 비교하는 함수 (0) | 2018.06.27 |
[C] memcpy 문자열을 지정 바이트 범위만큼 복사하는 함수 (0) | 2018.05.01 |
[C] 포인터 Pointer 알아보기 (0) | 2018.02.20 |
[C] Call By Value 와 Call By Reference 차이점 알아보기 (0) | 2018.02.19 |