结构成员指向另一个结构成员
Struct member point at another struct member
结构成员是否可以指向不同结构的另一个成员?
我想做一些参考 table.
struct a {
int a;
int b;
};
struct b {
* struct a.b;
};
我猜这是不可能的,因为没有分配内存,但我愿意接受建议。
当然可以,只需要使用一个指针
struct b
{
int* p ; //or an array of pointers if you need a table
} ;
struct a sa = { 1 , 2 } ;
struct b sb = { &sa.a } ;
printf("%d\n" , sb.p ) ;
sb.p = &sa.b ;
printf("%d\n" , sb.p ) ;
结构成员是否可以指向不同结构的另一个成员? 我想做一些参考 table.
struct a {
int a;
int b;
};
struct b {
* struct a.b;
};
我猜这是不可能的,因为没有分配内存,但我愿意接受建议。
当然可以,只需要使用一个指针
struct b
{
int* p ; //or an array of pointers if you need a table
} ;
struct a sa = { 1 , 2 } ;
struct b sb = { &sa.a } ;
printf("%d\n" , sb.p ) ;
sb.p = &sa.b ;
printf("%d\n" , sb.p ) ;