我有两个大小为 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/