从c中的嵌套结构中提取结构

发布于 2024-09-18 01:48:23 字数 288 浏览 10 评论 0原文

我有以下问题:

我有一个全局结构,里面有很多结构。 现在我想要取出其中一个子结构并将其存储在其他结构中。

typedef struct 
{
  int a;
}A;

typedef struct
{
 int b;
}B;

typedef struct 
{ 
 A dummy1;
 B dummy2;
} C;

我想声明从 C 中提取 A 的第四个结构。 我做了我的memcpy,这是唯一的方法吗?

非常感谢您的帮助,

谢谢 胡扎法

I have following problem:

I have one global structure that has many structures inside.
Now I want one of the substructures taken out and stored in some other structure.

typedef struct 
{
  int a;
}A;

typedef struct
{
 int b;
}B;

typedef struct 
{ 
 A dummy1;
 B dummy2;
} C;

I want to declare fourth structure that extracts A from C.
I did my memcpy, is it only way?

Help will be very appreciated

Thanks
Huzaifa

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

莫相离 2024-09-25 01:48:23

您可以分配结构。所以:

typedef struct
{
    A blah1;
    B blah2;
    /* Other members here */
} D;

C c;
D d;
...
d.blah1 = c.dummy1;

完全没问题。

You can assign structures. So:

typedef struct
{
    A blah1;
    B blah2;
    /* Other members here */
} D;

C c;
D d;
...
d.blah1 = c.dummy1;

is totally fine.

-柠檬树下少年和吉他 2024-09-25 01:48:23

使用指向您需要的结构的指针:

int main() {
C c;
c.dummy1.a = 10;
c.dummy2.b = 20;

A *a;

a = &c.dummy1;

printf("%d\n", a->a);

return 0;

}

Use a pointer to the struct you need:

int main() {
C c;
c.dummy1.a = 10;
c.dummy2.b = 20;

A *a;

a = &c.dummy1;

printf("%d\n", a->a);

return 0;

}

烟花易冷人易散 2024-09-25 01:48:23

应该能够获取 dummy1 的引用。

typedef struct { A dummy1; } D;

C var1;
D var2.dummy;
(*var2.dummy) = &var1.dummy1;

Should just be able to grab the reference of dummy1.

typedef struct { A dummy1; } D;

C var1;
D var2.dummy;
(*var2.dummy) = &var1.dummy1;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文