보통 함수를 작성할 때 다음과 같이 인자로 받은 포인터를 검증한다.
한 후배가 물었다.
"만약 NULL 이 아닌 잘못된 포인터가 넘어온 경우는 어떻게 체크하죠?"
당연한 듯이 대답해주었다.
"그걸 어떻게 체크하냐? 어쩔 수 없는 거지!!"
퇴근하면서 생각해 보니... 어쩔수 없지는... 않을 것 같아서 한번 만들어 보았다. ^^
사용법은 다음과 같다.
실행 결과는 다음과 같다
Result String : Some String
Fail to Copy String
Fail to Copy String
할당되지 않은 포인터를 버퍼 인자로 넘겼을 때 Access Violation이 발생하지 않고 Parameter Validation 과정에서 걸러지는 것을 확인할 수 있다.
생각나는대로 뚝딱 만든 것이니 지나가던 고수님께서 혹시 틀린 부분이라도 발견하신다면 알려주시라.
'C++' 카테고리의 다른 글
DLL Injection (4) | 2009.03.20 |
---|---|
UTF-8 String을 유니코드(UCS-16)로 전환하기 (0) | 2009.03.02 |
CriticalSection에 관한 알쏭달쏭 퀴즈! (4) | 2009.02.05 |
문자열 함수 "_s" 시리즈 분석 (_tcsncpy_s 등) (10) | 2008.09.29 |
MBCS 프로젝트 유니코드 전환 가이드 (0) | 2008.08.23 |