[英]Pointer to Array of Struct
struct bop
{
char fullname[ strSize ];
char title[ strSize ];
char bopname[ strSize ];
int preference;
};
int main()
{
bop *pn = new bop[ 3 ];
有没有一种方法可以一次初始化所有char数组成员?
编辑:我知道我可以使用字符串或向量,但是我只是出于好奇而想知道。
是。 您可以通过对数组进行值初始化将它们初始化为全0
bop *pn = new bop[ 3 ]();
但是实际上,我更喜欢像一些注释者所说的那样使用std::string
和std::vector
,除非您需要该结构与某些不理解高级结构的接口真正字节兼容。 如果确实需要这种简单的设计,则仍可以在堆栈上进行初始化并复制。 例如,“初始化”第一个元素
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 }
};
不,对不起 您需要遍历并分配值。
如果我没记错的话,可以在该结构中添加一个构造函数,以将值初始化为默认值。 如果与您在类中使用的内容不同,则这是相似的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.