c++ - 访问数组超出限制

标签 c++ arrays

我有两个大小为 100 的字符数组 (char array1[100], char array2[100])。现在我只想检查是否有人正在访问超出限制的数组。这是必要的,因为假设为 array1 和 array2 分配的内存是连续的,因为 array1 完成然后 array2 开始。现在,如果有人写:array1[101],从概念上讲它是错误的,但编译器会发出警告但不会崩溃。那么我该如何检测并解决这个问题呢?

更新 1:

我已经有了第 15,000 行的代码。对于该代码,我必须检查此条件并且我可以调用我的函数但不能更改编写的代码。请根据此建议我。

最佳答案

大多数现代语言都会检测到这一点并防止它发生。 C 及其派生语言没有检测到这一点,而且基本上检测不到这一点,因为您可以通过多种方式访问​​内存,包括裸指针。如果你可以限制你访问内存的方式,那么你可以使用一个函数或其他东西来检查你的访问。

关于c++ - 访问数组超出限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3658383/

相关文章:

c - 用户读取未定义大小数组的数字

arrays - Scala 中的二维数组乘法

javascript - 根据另一个数组的值设置数组中键的值

c++ - 如何在不混淆字段的情况下声明复数?

arrays - 从数据文件分配多维数组

c++ - std(boost)::filesystem::path 组件数

c++ - 既然已弃用,我如何才能获得相同的 strstream 功能?

javascript - 创建数组,使用 $.each 循环,如果不在数组中则添加值

c++ - FFTW 和 CUFFT 输出之间的差异

c++ - 初始化列表和 move 语义