경고 C6255
_alloca 스택 오버플로 예외를 발생시켜 오류를 나타냅니다. 대신 _malloca 사용하는 것이 좋습니다.
이 경고는 로컬 예외 처리 외부에서 호출 _alloca
이 검색되었음을 나타냅니다.
_alloca
오류 발생시 스택 오버플로 예외가 발생될 수 있으므로 항상 예외 처리기의 보호된 범위 내에서 호출해야 합니다. 가능하면 사용하는 대신 더 안전한 버전의 _alloca
.를 사용하는 _malloca
_alloca
것이 좋습니다.
코드 분석 이름: UNPROTECTEDUSEOFALLOCA
다음 코드는 예외를 생성할 수 있으므로 _alloca
이 경고를 생성합니다.
#include <windows.h>
void f( )
{
void *p = _alloca(10);
// code ...
}
이 경고를 수정하려면 다음 코드와 같이 예외 처리기를 사용하고 _malloca
추가합니다.
#include <windows.h>
#include <malloc.h>
void f( )
{
void *p;
int errcode;
__try
{
p = _malloca(10);
// code...
_freea(p);
}
__except( (GetExceptionCode() == STATUS_STACK_OVERFLOW ) ?
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH )
{
errcode = _resetstkoflw();
// code ...
}
}