在 C++ 中,我借助 char 指针写入内存区域。我的字符指针如下:
unsigned char * writer;
*(writer++)=0xF1; //example of write
现在我的问题是,一旦我写入...我的程序中的其他一些写入就能够覆盖这些数据..因此我在读取时得到不正确的结果。由于我只写一次..在 C/C++ 中是否有某种方法可以使该内存区域保持不变(不受影响)..这样程序的其他部分就不会写入它。
最佳答案
不可移植,不。
您也许可以使用操作系统提供的工具将整个内存页标记为只读。这可能对您有用,也可能不起作用,具体取决于您是否可以将有问题的字节隔离到专用内存页中。这也有点像大锤式的方法。
如果您想这样做是为了解决错误,那么更好的方法是找到并修复错误。例如,如果您怀疑存在内存损坏,valgrind
是一个非常有用的工具。
关于c++ - C/C++中保持内存区域不变的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15661099/