編譯器警告 C4958
'operation' : 指標算術無法驗證
備註
使用指標算術會產生未經驗證的影像。
如需詳細資訊,請參閱純和可驗證的程序代碼(C++/CLI)。
Visual Studio 2015 中已淘汰 /clr:safe 編譯程序選項,在 Visual Studio 2017 中不受支援。
發出這個警告即表示發生錯誤,而且可以使用 warning pragma 或 /wd 編譯器選項予以停用。
範例
下列範例會產生 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
}
編譯器使用指標算術來實作陣列運算。 因此,無法驗證原生陣列。請改用 CLR 陣列。 如需詳細資訊,請參閱 陣列。
下列範例會產生 C4958:
// C4958b.cpp
// compile with: /clr:safe
// #pragma warning( disable : 4958 )
int main() {
int array[5];
array[4] = 0; // C4958
}