Compartir a través de


Advertencia del compilador C4958

"operation": la aritmética de puntero no se puede comprobar

Comentarios

El uso de la aritmética de puntero producirá una imagen no comprobable.

Para más información, consulte Código puro y comprobable (C++/CLI).

La opción del compilador /clr:safe está en desuso en Visual Studio 2015 y no se admite en Visual Studio 2017.

Esta advertencia se emite como un error y puede deshabilitarse con pragma warning o la opción del compilador /wd .

Ejemplo

El ejemplo siguiente genera la advertencia 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
}

El compilador implementa operaciones de matriz con aritmética de puntero. Por lo tanto, las matrices nativas no son comprobables; use una matriz de CLR en su lugar. Para obtener más información, vea Matriz.

El ejemplo siguiente genera la advertencia C4958:

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

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