void怎么转换为自定义结构体指针
要将void*转换为自定义结构体指针,可以使用类型转换操作符(struct_name*)。以下是一个示例:
#include <stdio.h>
typedef struct {
int x;
int y;
} Point;
int main() {
Point p = {3, 4};
void* ptr = &p; // 将结构体指针转换为 void* 类型
Point* p_ptr = (Point*)ptr; // 将 void* 类型转换为结构体指针
printf("x: %d, y: %d\n", p_ptr->x, p_ptr->y); // 输出结构体指针中的值
return 0;
}
在上面的示例中,我们首先定义了一个自定义的结构体 Point,然后创建了一个 Point 类型的结构体变量 p,并给它赋值。接下来,我们将 p 的地址赋给 void* 类型的指针 ptr。然后,我们使用类型转换操作符 (Point*) 将 ptr 转换为 Point 类型的结构体指针 p_ptr,然后我们可以通过 p_ptr 访问结构体中的成员变量。
输出结果为:
x: 3, y: 4
``
原文地址: https://www.cveoy.top/t/topic/hUxF 著作权归作者所有。请勿转载和采集!