☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

指针加减整数,结果超出了指针指向数组的地址范围,使指针的值溢出

C++-Undefined-Behavior-45
目录 › next › previous

设数组 a 的元素个数为 N,a 至 a + N 均为有效值(但不可对 a + N 解引用),超出这个范围的指针加减运算可能会使指针的值溢出,导致未定义的行为。

示例:

int a[N];    // Let ‘N’ be the array size
int* p;

p = a;       // OK
p = a + N;   // OK, won't overflow

p = a - 1;       // May overflow, resulting in undefined behavior
p = a + N + 1;   // May overflow, resulting in undefined behavior

依据

ISO/IEC 14882:2003 5.7(5)-undefined ISO/IEC 14882:2011 5.7(5)-undefined

规则

ID_arrayIndexOverflow
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.