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

标签 c pointers static heap-memory

对于存储在堆栈中的变量,我们可以使用static 来避免从其他文件访问。有没有办法避免其他文件的指针访问特定地址?

最佳答案

首先,为了解决问题,静态变量永远不会在堆栈上分配,因为它们本质上是全局变量,它们不会污染全局命名空间。获取指向静态变量的指针并更改它是微不足道的,静态是编译器强制构造。

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

关于C - 如何限制堆中的地址访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51669071/

相关文章:

c - 处理 ARM 芯片的保留寄存器位

pointers - golang return [] * TreeNode {}和return [] * TreeNode {nil}有什么区别

c++ - 总是在 C++ 中创建类?

swift :设置@IBOutlet静态

C# 无法访问静态上下文中的非静态成员字段,实际上不在静态上下文中

我可以通过函数更改初始化的字符指针吗?

c - 为什么我不能将赋值分解为两个不同的语句?

c - 将给定链表的反向存储到另一个链表中

pointers - 如何将 lParam 转换为多个结构?

c - 数组索引改变