Suppose the memory address of a struct in C language is stored in a variable of sufficiently wide integer type, such as uintptr_t.
I want to read the contents of struct by casting the integer to a struct pointer and dereferencing that.

可以使用这种方法重新构建原始 struct 吗?

推荐答案

您应该简单地使用指向 struct 的指针,而不是将内存位置存储在任何数据类型的变量中,如int或uintptr_t.然后,可以使用箭头操作符来访问此 struct 的内容. 假设您有名为INFO的 struct ,那么可以将指针创建为struct info *x = &info;

C++相关问答推荐

漏洞仅出现在FreeBSD上,但在Windows、Linux和MacOS上运行得非常好

我可以动态分配具有空类型函数的矩阵吗?

CC crate 示例不会与C函数链接

segfault在C中使用getline()函数

C中空终止符后面的数字?

为什么已经设置的值在C中被重置为for循环条件中的新值?

我编译了一个新的c程序,并收到以下错误

识别和处理c中整数溢出的最佳方法?

Sizeof(&Q;字符串&Q;)的正确输出是什么?

将 struct 传递给函数

用C语言计算文本文件中的整数个数

GCC错误,共享内存未定义引用?

我在C程序的Flex/Bison中遇到语法错误

为四维数组中的Dim-1和Dim-3重新分配空间

静态初始化顺序失败是否适用于C语言?

从文件到链表读取日期

通过GTK';传递回调参数;s g_signal_connect()导致C中出现意外值

无法理解 fgets 输出

int 与 size_t 与 long

Codewars Kata 掷骰子的不稳定行为