/ /構造体の配列へのポインタ - c ++、配列

Struct - c ++配列の配列へのポインタ

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

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

char配列メンバを一度に初期化する方法はありますか?

編集:私は文字列やベクトルを使用することができますが、私はちょうど好奇心を知りたいと思った。

回答:

回答№1は0

私が誤解していない場合は、値をデフォルト値に初期化する構造体にコンストラクタを追加することができます。これは、クラスで使用するものと同じでない場合も同様です。


回答№2については2

はい。値を初期化することでall-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 }
};

回答№3の場合は1

いいえ、申し訳ありません。ループして値を割り当てる必要があります。