본문 바로가기
C++/c 런타임 라이브러리

memset 주의할 점

by juheeL 2023. 1. 31.

memet

- CRT ( C 런타임 라이브러리)

 

 

memset을 사용할 때 주의할 점 ( ZeroMemory함수도 비슷함 )

 

- std::string, std::wstring을 memset으로 초기화 하면 안된다. ( memset 이후, 문자열 삽입시, 정상작동 안되는 것 랜덤발생 확인)


- 1Bytes 변수(char, unsigned char 등)를 제외한 변수를 초기화 할 때에는 0이외의 값으로 초기화를 절대 하지마라.


- new, malloc 등을 이용하여 동적으로 배열을 생성하는 변수가 있는 struct, class에서는 초기화할 때 조심해라.

- CString은 절대 memset으로 초기화를 하지마라.

- virtual function을 가지고 있는 struct, class에서는 절대 memset으로 초기화를 하지마라.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

memset을 사용할 때 주의할 점


- 1Bytes 변수(char, unsigned char 등)를 제외한 변수를 초기화 할 때에는 0이외의 값으로 초기화를 절대 하지마라.

- new, malloc 등을 이용하여 동적으로 배열을 생성하는 변수가 있는 struct, class에서는 초기화할 때 조심해라.

- CString은 절대 memset으로 초기화를 하지마라.

- virtual function을 가지고 있는 struct, class에서는 절대 memset으로 초기화를 하지마라.

memset을 사용할 때 위 4가지 경우만 기억을 하고 있으면 문제없다. 반드시 기억하고 있어야 한다. 각각에 대해서 간단하게 살펴보도록 하자.

출처: http://pccoms.tistory.com/entry/문자열-관리-함수들-총집합 [피씨컴의 기울어진 공관]

 

그 외 다양한 문자열들도 정리되어있는 링크.

 

https://learn.microsoft.com/ko-kr/cpp/c-runtime-library/reference/memset-wmemset?view=msvc-170 

 

memset, wmemset

자세한 정보: memset, wmemset

learn.microsoft.com

 

 

'C++ > c 런타임 라이브러리' 카테고리의 다른 글

strchr, strrchr  (0) 2024.02.08