MSVC2013如何在仲裁地址声明引用数组?

时间:2016-02-06 15:58:22

标签: arrays visual-c++

这有效:

char anArray[256] = {};
char (&refToAnArray)[256] = anArray;

这失败了:

char (&refToAnArrayAtArbitryAddress)[256] = *reinterpret_cast<char(*)[256]>(0xDEADBEEF); 

使用:

error C2101: '&' on constant

为什么会失败,我该如何解决?

P.S我很清楚将0xDEADBEEF转换为指向256个元素数组的指针是危险的,但是对于32位游戏来说它是黑客攻击所以我需要它。

1 个答案:

答案 0 :(得分:0)

似乎是一个编译器错误,解决方法是:

char(* const cTheArray)[256] = reinterpret_cast<char(* const)[256]>(0xDEADBEEF);
char(& TheArray)[256] = *cTheArray;