2016-11-16 94 views
0

我想构建一个C++数组溢出保护。 我建立了一个非常好的系统(使用类+模板)保护访问以下形式 比方说,我设置用“安全”点算术构建数组

ProtectedArray<int,15> A;  

所以,如果我尝试去A [16]这样的:

A[16]=10; 

他给我一个例外。 我想造成这样的局面,如果我尝试做

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

抛出一个异常,是否有可能在所有做到这一点? (据说那一刻我把数组指针我没有“控制”就可以了)...

*我在类中实现了overlouding [](所以我可以调用A [10]) ,和&(获得指针指向基地)

+3

不,这是不可能的。 –

回答

1

本质上,当你将类型转换为一个整型指针时,你放弃了对该类型的所有控制 - 它变得完全像一个标准的C++ int *(它显然不包括边界检查)。