我想写一个变量监视类,允许我通过它一个指针(理想情况下void *)寻址通常会完全超出范围或者班级无法进入。然后该类将在屏幕上周期性地显示该内存位置的内容 - 以用户定义的方式解释(例如。(int *))。我只会使用这个指针从内存中读取数据,它会作为一个肮脏的破解,在开发期间为我在运行时暂时感兴趣的变量开发一种监视窗口 - 而不需要引入大量代码这些变量在范围/类可访问。使用无效的指针/内存地址:C++(windows)
我正在使用VC++ 2010,它似乎拒绝让我甚至写出一个超出范围的内存位置地址的指针。
我想在windows下有很多事情要做,因为这种方法在内存位置改变时可能具有非常有限的适用性,但我使用本机C++,因此希望我的地址足够持久以便有用。此外,我可以看到,它不会像我访问一个内存位置,我的程序实际上没有实际使用的安全原因...
任何想法我可以做到这一点? (我意识到使用这样的指针会产生未定义的行为,所以只会从中读取并显示值)。
谢谢。
以什么方式VC++拒绝让你做到这一点?也就是说,到目前为止您尝试了什么?你应该只能说“void * x =(void *)12345;” – 2011-03-25 13:52:38
如果你的目标是观察你自己的变量,你为什么要访问你没有使用的内存?这没有任何意义。 – 2011-03-25 13:54:29
丹尼尔,我正在使用它 - 但例如它可能是堆栈上的地址,或删除的堆地址。我使用它的方式 - 我不指望它会消失,但理论上它可以... – ChrisJH 2011-03-25 14:02:14