Freigeben über


Compilerwarnung C4958

'operation' : Zeigerarithmetik ist nicht überprüfbar

Hinweise

Bei Verwendung der Zeigerarithmetik wird ein nicht überprüfbares Image erstellt.

Weitere Informationen finden Sie unter Pure and Verifiable Code (C++/CLI).For more information, see Pure and Verifiable Code (C++/CLI).

Die Option "/clr:safe compiler" ist in Visual Studio 2015 veraltet und wird in Visual Studio 2017 nicht unterstützt.

Diese Warnung wird als Fehler ausgegeben. Sie kann mithilfe des warning -Pragmas oder der Compileroption /wd deaktiviert werden.

Beispiel

Im folgenden Beispiel wird C4958 generiert:

// 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
}

Der Compiler implementiert Arrayoperationen mit Zeigerarithmetik. Daher sind systemeigene Arrays nicht überprüfbar. Verwenden Sie stattdessen ein CLR-Array. Weitere Informationen finden Sie unter Array.

Im folgenden Beispiel wird C4958 generiert:

// C4958b.cpp
// compile with: /clr:safe
// #pragma warning( disable : 4958 )

int main() {
   int array[5];
   array[4] = 0;   // C4958
}