gpt4 book ai didi

c++ - 初始化未命名的结构指针/数组

转载 作者:太空宇宙 更新时间:2023-11-04 06:43:27 25 4
gpt4 key购买 nike

struct A
{
int member1;
int member2;
struct B
{
int member3;
int member4;
} *b;
};

如何初始化 A 并同时创建一个 B 数组来填充 b 字段?我想要一个静态变量,所以最好是函数调用。

我试过这个但它不起作用(我认为它不会):

static A a = {
1,
2,
& { {3, 4}, {5, 6} },
}

最佳答案

我认为这段代码的问题在于这一行:

& { {3, 4}, {5, 6} }

问题是 {{3, 4}, {5, 6}} 是一个右值(一个值,而不是一个对象),你不能获取右值的地址。毕竟,这个对象的内存从何而来?但是,您可以将其重写为

A::B elems[2] = {{3, 4}, {5, 6}};
static A a = {
1,
2,
elems
};

从现在开始,您就有了一个可以指向的左值。

关于c++ - 初始化未命名的结构指针/数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4687041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com