Share via


Upozornění kompilátoru C4958

"operation" : aritmetika ukazatele není ověřitelná

Poznámky

Pomocí aritmetiky ukazatele se vytvoří neověřitelný obrázek.

Další informace naleznete v tématu Čistý a ověřitelný kód (C++/CLI).

Možnost kompilátoru /clr:safe je v sadě Visual Studio 2015 zastaralá a v sadě Visual Studio 2017 není podporována.

Toto upozornění je vydáno jako chyba a lze ji zakázat pomocí direktivy pragma upozornění nebo parametru /wd compiler.

Příklad

Následující ukázka vygeneruje 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
}

Kompilátor implementuje maticové operace s aritmetikou ukazatele. Proto nativní pole nejsou ověřitelná; místo toho použijte pole CLR. Další informace najdete v matici.

Následující ukázka vygeneruje C4958:

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

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