警告 C26481
請勿使用指標算術。 請改用 span (bounds.1)。
備註
這項檢查支援 C++ 核心指導方針 規則 I.13 : 不要將陣列當做單一指標 傳遞。 每當在算數運算中使用原始指標時,都應該以更安全的緩衝區類型取代,例如 span<T>
或 vector<T>
。
這項檢查比 I.13 更嚴格:不會略過 zstring
或 czstring
類型。
C26481 和 C26485 來自 界限保管庫ty 設定檔 規則。 這些規則是在 C++ 核心指導方針檢查程式的第一個版本中實作的。 它們適用于原始指標類別,因為它們有助於避免不安全使用原始指標。
範例
此範例會產生指標算術的警告。
// c26481_bad.cpp
// compile using:
// set Esp.Extensions=CppCoreCheck.dll
// cl /W3 /EHsc /permissive- /analyze /analyze:plugin EspXEngine.dll /analyze:ruleset "%VSINSTALLDIR%\Team Tools\Static Analysis Tools\Rule Sets\CppCoreCheckBoundsRules.ruleset" c26481_bad.cpp
int main() noexcept
{
int * from_array = new int(10);
int * later_array = from_array + 1;
delete[](from_array);
}