2016-11-16 83 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 *(它顯然不包括邊界檢查)。