我正在尝试构建一个C ++数组溢出保护。 我构建了一个非常好的系统(使用类+模板)来保护对以下表单的访问 我们说我设置
ProtectedArray<int,15> A;
所以,如果我尝试像这样A [16]
:
A[16]=10;
他抛出一个例外。
我想创造一种情况,如果我尝试做
int * a = &A;
a += 16;
a = 13;
抛出异常,是否有可能这样做? (据说那个时刻,我把数组指针我没有&#34;控制&#34;就此...)
*我在课程中实现了[]的覆盖(所以我可以调用A [10]),和&amp;(以获得指向基础的指针)
答案 0 :(得分:1)
基本上当你将类型转换为整数指针时,你会失去对该类型的所有控制 - 它变得完全像标准的c ++ int *(显然不包括边界检查)。