Delen via


Compilerwaarschuwing C4958

'bewerking': rekenkundige aanwijzer is niet verifieerbaar

Opmerkingen

Met behulp van aanwijzerberekeningen wordt een niet-verifieerbare afbeelding geproduceerd.

Zie Pure en Verifiable Code (C++/CLI) voor meer informatie.

De optie /clr:safe compiler is afgeschaft in Visual Studio 2015 en wordt niet ondersteund in Visual Studio 2017.

Deze waarschuwing wordt weergegeven als een fout en kan worden uitgeschakeld met de waarschuwings pragma of de optie /wd compiler.

Voorbeelden

In het volgende voorbeeld wordt C4958 gegenereerd:

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

De compiler implementeert matrixbewerkingen met pointer-rekenkundige bewerkingen. Daarom zijn systeemeigen matrices niet verifieerbaar; gebruik in plaats daarvan een CLR-matrix. Zie matrix voor meer informatie.

In het volgende voorbeeld wordt C4958 gegenereerd:

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

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