【发布时间】:2018-08-03 09:06:54
【问题描述】:
对于堆栈中存储的变量,我们可以使用static 来避免从其他文件访问。有没有办法避免其他文件访问某个地址的指针?
【问题讨论】:
-
即使使用
static,它仍然可以通过指针从其他文件访问:) 为什么你仍然需要restrict 它?尽量缩小变量的作用域,如果不想从别处访问就不要绕过它。 -
也许只为他们提供一个指向常量的指针。静态函数在其他编译单元中不直接可见。但是如果他们有一个指向那个区域的指针,他们就可以从那个位置读/写,或者调用函数。
-
我正在编写一个实现,并希望程序在其他文件意外访问某些特定内存时抛出类似错误的东西。所以它可能更容易调试。 @P.P.
-
你必须解决的第一个问题是这样的系统如何知道什么是对任何内存的正确访问。
-
@YiLinLiu,没有办法在您的代码中获取异常以访问其他文件中定义的另一个变量。定义变量的文件在程序的链接阶段丢失,您无法限制对自己内存的访问(没有操作系统帮助来区分您的进程对自身任何虚拟地址的访问)
标签: c pointers static heap-memory