C/C++故意超出范围索引

前端之家收集整理的这篇文章主要介绍了C/C++故意超出范围索引前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Access array beyond the limit in C and C++7个
> How dangerous is it to access an array out of bounds?11个
说我有一个像这样的数组:
int val[10];

我故意用从负值到任何高于9的值来索引它,但没有以任何方式使用结果值.这可能是出于性能原因(也许在进行数组访问后检查输入索引会更有效).

我的问题是:

>这样做是否安全,或者我是否会遇到某种内存保护障碍,有可能破坏某些指数的内存或类似情况?
>如果我像这样访问超出范围的数据,它可能没有效率吗? (假设数组没有内置范围检查).
>这会被视为不良做法吗? (假设写了一条注释,表示我们知道使用超出范围的索引).

解决方法

这是未定义的行为.根据定义,undefined意味着“任何事情都可能发生”.你的代码可能崩溃,它可以完美地工作,它可以带来所有人的和平与和谐.我不打赌第二次或最后一次.

猜你在找的C&C++相关文章