컴파일러 경고 C4958
'operation': 포인터 산술 연산을 확인할 수 없습니다.
설명
포인터 산술 연산을 사용하여 확인할 수 없는 이미지를 생성합니다.
자세한 내용은 순수 및 확인 가능한 코드(C++/CLI)를 참조하세요.
/clr:safe 컴파일러 옵션은 Visual Studio 2015에서 더 이상 사용되지 않으며 Visual Studio 2017에서는 지원되지 않습니다.
이 경고는 오류로 발생하며 warning pragma 또는 /wd 컴파일러 옵션과 함께 사용하지 않도록 설정할 수 있습니다.
예시
다음 샘플에서는 C4958을 생성합니다.
// C4958.cpp
// compile with: /clr:safe
// #pragma warning( disable : 4958 )
using namespace System;
int main( ) {
Int32 arr[] = new Int32[10];
Int32* p = &arr[0];
p++; // C4958
}
컴파일러는 포인터 산술 연산을 사용하여 배열 연산을 구현합니다. 따라서 네이티브 배열은 확인할 수 없습니다. 대신 CLR 배열을 사용합니다. 자세한 내용은 배열을 참조하세요.
다음 샘플에서는 C4958을 생성합니다.
// C4958b.cpp
// compile with: /clr:safe
// #pragma warning( disable : 4958 )
int main() {
int array[5];
array[4] = 0; // C4958
}