경고 C26481

포인터 산술 연산을 사용하지 마세요. 대신 범위를 사용합니다(bounds.1).

설명

이 검사 C++ 핵심 지침 규칙 I.13을 지원합니다. 배열을 단일 포인터로 전달하지 마세요. 원시 포인터가 산술 연산에 사용될 때마다 더 안전한 종류의 버퍼(예: 또는 vector<T>.)로 span<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);
}