我的函数只有一个(void*)
指针用于数据传输。但我需要使用struct A
指针同时传输两个不同的结构(struct B
和(void*)
)。是否可以通过此指针存储一个接一个结构,然后使用结构大小和偏移量访问数据?
答案 0 :(得分:5)
您可以执行以下操作:
struct C
{
struct A myA;
struct B myB;
};
在myA
中填充myB
和C
变量,然后将指针传递给函数中的struct C
。
答案 1 :(得分:2)
您可以创建一个包含两个指针的struct
,然后传递该struct
实例的地址:
typedef struct
{
struct A *a_ptr;
struct B *b_btr;
} struct_with_two_pointers;
...
struct A a;
struct B b;
...
struct_with_two_pointers X;
x.a_ptr = &a;
x.b_ptr = &b;
someVoidFunc( ( void * ) &X );
答案 2 :(得分:2)
添加示例代码段,如果有帮助的话。
typedef struct
{
int age;
int rollno;
}struct_A;
typedef struct
{
char name[10];
int marks;
}struct_B;
typedef struct
{
struct_A a;
struct_B b;
}struct_C;
struct_C combined_struct = {{15,10}, {"Henry", 85}}; //Fill the structure here.
someRandonFunction((void*) &combined_struct); //Pass it.