Avertissement du compilateur C4958

'operation' : l’arithmétique du pointeur n’est pas vérifiable

Notes

L’utilisation d’une opération arithmétique de pointeur produira une image non vérifiable.

Pour plus d’informations, consultez Code vérifiable et pur (C++/CLI).

L’option du compilateur /clr :safe est déconseillée dans Visual Studio 2015 et non prise en charge dans Visual Studio 2017.

Cet avertissement s’affiche comme une erreur et peut être désactivé avec le pragma warning ou l’option du compilateur /wd .

Exemple

L’exemple suivant génère l’avertissement 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
}

Le compilateur implémente des opérations de tableau avec l’opération arithmétique de pointeur. Par conséquent, les tableaux natifs ne sont pas vérifiables ; utilisez plutôt un tableau CLR. Pour plus d'informations, consultez tableau.

L’exemple suivant génère l’avertissement C4958 :

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

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