Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
No usar aritmética de punteros. Usar en su lugar un intervalo (bounds.1).
Comentarios
Esta comprobación admite la regla de C++ Core GuidelinesI.13: No pasar una matriz como un único puntero. Siempre que los punteros básicos se usen en operaciones aritméticas, deben reemplazarse por tipos más seguros de búferes, como span<T> o vector<T>.
Esta comprobación es más restrictiva que I.13: no omite zstring ni czstring tipos.
Las advertencias C26481 y C26485 proceden de las reglas de perfil de seguridad de límites. Estas reglas se implementaron en la primera versión del comprobador de C++ Core Guidelines. Son aplicables a la categoría de punteros básicos, ya que ayudan a evitar el uso no seguro de estos punteros.
Ejemplo
Este ejemplo da como resultado una advertencia para la aritmética de puntero.
// 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);
}