c++ - 负一的数组值

标签 c++ arrays overflow

是否有任何 repricussions 在存储在 -1 的数组中具有值?它会以不好的方式影响程序或计算机吗?我真的很好奇,我是编程新手,我能得到的任何澄清都非常有帮助,谢谢。

最佳答案

无法在索引 -1 的数组对象中存储任何内容。仅仅尝试获取指向该不存在元素的指针会导致未定义的行为。

在基指针不是数组对象本身,而是指向另一个数组对象中间的独立指针的情况下,负索引(如 -1)可能会出现在类似数组的上下文中,如

int a[10];
int *p = &a[5];

p[-1] = 42; // OK, sets `a[4]`
p[-2] = 5; // OK, sets `a[3]`

但是在实际数组开始之前访问不存在的元素的任何尝试都会导致未定义的行为

a[-1]; // undefined behavior
p[-6]; // undefined behavior

关于c++ - 负一的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21589076/

相关文章:

html - 带有溢出的 Css 网格自动调整大小的行内容

c++ - CppCMS URL 映射问题

python - Pandas 数据框错误 'StringArray requires a sequence of strings or pandas.NA'

html - css - div 在父字段集之外溢出

html - 自动高度 div 溢出并在需要时滚动

javascript - 在 JavaScript 中声明数组的方式是什么?

c++ - 基于整体类模板专门化一个类方法

c++ - POCO C++ 库,HTTPResponse 状态错误

c++ - 检测超出函数范围的未使用变量

javascript - lodash 为数组中的每个对象分配一个字段