Condividi tramite


Avviso del compilatore C4958

'operation': l'aritmetica del puntatore non è verificabile

Osservazioni:

L'uso dell'aritmetica dei puntatori produrrà un'immagine non verificabile.

Per altre informazioni, vedere Codice puro e verificabile (C++/CLI).

L'opzione del compilatore /clr:safe è deprecata in Visual Studio 2015 e non supportata in Visual Studio 2017.

Questo avviso viene generato come errore e può essere disabilitato tramite il pragma warning o l'opzione del compilatore /wd .

Esempio

L'esempio seguente genera l'avviso 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
}

Il compilatore implementa le operazioni di matrici con l'aritmetica dei puntatori. Le matrici native non sono quindi verificabili. Usare una matrice CLR. Per altre informazioni, vedere matrice.

L'esempio seguente genera l'avviso C4958:

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

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