使用" secure"构建数组;点算术

时间:2016-11-16 11:32:50

标签: c++ arrays pointer-arithmetic

我正在尝试构建一个C ++数组溢出保护。 我构建了一个非常好的系统(使用类+模板)来保护对以下表单的访问 我们说我设置

ProtectedArray<int,15> A;    

所以,如果我尝试像这样A [16]

A[16]=10;
他抛出一个例外。 我想创造一种情况,如果我尝试做

int * a = &A;
a += 16;
a = 13;

抛出异常,是否有可能这样做? (据说那个时刻,我把数组指针我没有&#34;控制&#34;就此...)

*我在课程中实现了[]的覆盖(所以我可以调用A [10]),和&amp;(以获得指向基础的指针)

1 个答案:

答案 0 :(得分:1)

基本上当你将类型转换为整数指针时,你会失去对该类型的所有控制 - 它变得完全像标准的c ++ int *(显然不包括边界检查)。