Pointers 检查当前进程是否可以将N字节的数据写入内存地址?

Pointers 检查当前进程是否可以将N字节的数据写入内存地址?,pointers,memory,out-of-memory,Pointers,Memory,Out Of Memory,我在解决一些一般的计算机科学问题时遇到了这个问题 如何实现一个函数bool isMemoryWritable(void*p,size\t n),该函数检查当前进程是否可以将n个字节写入给定的内存地址?假设您可以捕获任何类型的错误 我不太明白这个问题想问什么。我可以想到两种解释a)检查从给定地址开始是否有足够的可用内存,以便容纳N个字节。b) 检查距给定地址N字节内是否存在其他数据 如果有人能准确地解释问题的内容,以及我们如何着手解决它,那就太好了。可能只是在寻找一个try/catch,您尝试在d

我在解决一些一般的计算机科学问题时遇到了这个问题

如何实现一个函数bool isMemoryWritable(void*p,size\t n),该函数检查当前进程是否可以将n个字节写入给定的内存地址?假设您可以捕获任何类型的错误

我不太明白这个问题想问什么。我可以想到两种解释a)检查从给定地址开始是否有足够的可用内存,以便容纳N个字节。b) 检查距给定地址N字节内是否存在其他数据


如果有人能准确地解释问题的内容,以及我们如何着手解决它,那就太好了。

可能只是在寻找一个try/catch,您尝试在dest地址写入n个字节,然后如果您捕获到一个异常,您就知道它不可写。这是个糟糕的问题。它假定内存是或不是可写的。事实上,有一些记忆是可以写的。(页面错误上的延迟alloc)。其次,它没有说明测试是否具有破坏性。如果没有,您需要一个原子读-不修改-写。