c++ - C/C++中保持内存区域不变的方法

标签 c++ c

在 C++ 中,我借助 char 指针写入内存区域。我的字符指针如下:

  unsigned char * writer;
  *(writer++)=0xF1; //example of write

现在我的问题是,一旦我写入...我的程序中的其他一些写入就能够覆盖这些数据..因此我在读取时得到不正确的结果。由于我只写一次..在 C/C++ 中是否有某种方法可以使该内存区域保持不变(不受影响)..这样程序的其他部分就不会写入它。

最佳答案

不可移植,不。

您也许可以使用操作系统提供的工具将整个内存页标记为只读。这可能对您有用,也可能不起作用,具体取决于您是否可以将有问题的字节隔离到专用内存页中。这也有点像大锤式的方法。

如果您想这样做是为了解决错误,那么更好的方法是找到并修复错误。例如,如果您怀疑存在内存损坏,valgrind是一个非常有用的工具。

关于c++ - C/C++中保持内存区域不变的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15661099/

相关文章:

c++ - 为什么 long int 数据类型的左位移 << 不超过 31?

c - 为什么递归函数在返回时取最新值?

c++ - 在 C 中使用指向对象的指针的方法

c++ - 如何防止隐式转换为具有多种整数类型的 boost::variant 类型?

c++ - auto_ptr 会防止这种情况发生吗?

c++ - Windows Phone 8 上的当前语言环境

c - C中的数据封装

c - 终端上的奇怪字符

PHP 数组语法/运算符?

c++ - tensorflow c_api.h 为什么GPU比CPU慢