gpt4 book ai didi

c++ - 指向结构数组的指针

转载 作者:行者123 更新时间:2023-11-28 01:10:29 26 4
gpt4 key购买 nike

struct bop
{
char fullname[ strSize ];
char title[ strSize ];
char bopname[ strSize ];
int preference;
};

int main()
{
bop *pn = new bop[ 3 ];

有没有办法一次初始化所有的char数组成员?

编辑:我知道我可以使用字符串或 vector ,但出于好奇我只是想知道。

最佳答案

是的。您可以通过值初始化数组将它们初始化为全 0

bop *pn = new bop[ 3 ]();

但实际上我更愿意像一些评论者所说的那样使用 std::stringstd::vector ,除非你需要该结构真正与字节兼容有一些不理解高级结构的接口(interface)。如果你确实需要这种简单的设计,那么你仍然可以在堆栈上初始化并复制过来。例如“初始化”第一个元素

bop b = { "bob babs", "mr.", "bobby", 69 };
memcpy(pn, &b, sizeof b);

注意在 C++0x 中你可以说

bop *pn = new bop[3] {
{ "bob babs", "mr.", "bobby", 0xd00d },
{ ..., 0xbabe },
{ ..., 69 }
};

关于c++ - 指向结构数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3644052/

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