C-如何限制堆中的地址访问?

时间:2018-08-03 09:06:55

标签: c pointers static heap

对于存储在堆栈中的变量,我们可以使用static来避免从其他文件访问。无论如何,要避免其他文件的指针访问某个地址?

1 个答案:

答案 0 :(得分:1)

首先,为了避免麻烦,静态变量从不分配在堆栈上,因为它们本质上是全局变量,它们根本不会污染全局名称空间。获取指向静态变量的指针并进行更改很简单,因为静态变量是编译器强制执行的构造。

不过,回到实际问题,不,您不能尝试直接检查内存访问。您甚至怎么知道您正在访问的内存是否有效?您可以沿线做一些事情。例如,您可以使用自己的内存管理功能包装malloc和free,并跟踪分配和释放的内存以及元数据。然后,您可以使用另一个包装器函数来处理指针的解引用,并根据需要检查元数据。如果需要,您仍然可以使用原始指针来破坏,因此实际上并没有太多。