C++ 指向结构数组的指针

C++ 指向结构数组的指针,c++,arrays,C++,Arrays,有没有一种方法可以一次初始化所有字符数组成员 编辑:我知道我可以使用字符串或向量,但我只是出于好奇想知道。不,对不起。您需要循环并分配值。不,对不起。您需要循环并分配值。是。通过初始化数组的值,可以将它们初始化为all-0 struct bop { char fullname[ strSize ]; char title[ strSize ]; char bopname[ strSize ]; int preference; }; int main() {

有没有一种方法可以一次初始化所有字符数组成员


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

不,对不起。您需要循环并分配值。

不,对不起。您需要循环并分配值。

是。通过初始化数组的值,可以将它们初始化为all-0

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

int main()
{
    bop *pn = new bop[ 3 ];
但事实上,我更喜欢使用
std::string
std::vector
,就像一些评论员所说的,除非您需要该结构与一些不理解高级结构的接口真正兼容字节。如果您确实需要这种简单的设计,那么您仍然可以在堆栈上初始化并复制。例如,“初始化”第一个元素

bop *pn = new bop[ 3 ]();
注意,在C++0x中,您可以说

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

对。通过初始化数组的值,可以将它们初始化为all-0

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

int main()
{
    bop *pn = new bop[ 3 ];
但事实上,我更喜欢使用
std::string
std::vector
,就像一些评论员所说的,除非您需要该结构与一些不理解高级结构的接口真正兼容字节。如果您确实需要这种简单的设计,那么您仍然可以在堆栈上初始化并复制。例如,“初始化”第一个元素

bop *pn = new bop[ 3 ]();
注意,在C++0x中,您可以说

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

如果我没有弄错的话,您可以向结构添加一个构造函数,将值初始化为默认值。如果与在类中使用的内容不同,则类似。

如果我没有弄错的话,可以向结构中添加一个构造函数,将值初始化为默认值。如果与您在类中使用的内容不同,那么这与您在类中使用的内容类似。

将它们初始化为什么?什么是
strize
?为什么不使用
std::vector
std::string
?一点“}”已经被完全破坏了将它们初始化为什么?什么是
strSize
?为什么不使用
std::vector
std::string
?一点“}”已经完全正确了undermined@Johanees这是初始化整个数组还是只初始化pn的第一个值?啊,我在某处看到了0x实现,但我不知道它是0x。谢谢你的澄清。@johanes这是初始化整个数组还是仅仅初始化pn的第一个值?啊,我在某处看到了0x实现,但我不知道它是0x。谢谢你澄清这一点。这听起来是一个很好的解决方案。我真的不打算使用这样的代码,我只是想知道是否可以一次性初始化这样的结构成员。谢谢。这听起来是个好办法。我真的不打算使用这样的代码,我只是想知道是否可以一次性初始化这样的结构成员。谢谢