動的構造体の初期値
構造体に可変数のインスタンスが必要な場合、そのインスタンスは通常、calloc 関数または malloc 関数を使用して動的に取得されるメイン・ストレージの内部に作成されます。このような構造体内のフィールドを初期設定する場合は、次の技法を検討してください。
- 構造体を初期化するために、適切な MQxxx_DEFAULT マクロ変数を使用して、構造体のインスタンスを宣言する。このインスタンスが他のインスタンスのモデルになります。
必要に応じて、宣言に static キーワードまたは auto キーワードをコーディングすると、存続時間中のモデル・インスタンスを静的または動的な状態にすることができます。MQMD Model = {MQMD_DEFAULT}; /* declare model instance */ - calloc 関数または malloc 関数を使用して、構造体の動的インスタンス用のストレージを取得します。
PMQMD Instance; Instance = malloc(sizeof(MQMD)); /* get storage for dynamic instance */ - memcpy 関数を使用して、モデル・インスタンスを動的インスタンスにコピーします。
memcpy(Instance,&Model,sizeof(MQMD)); /* initialize dynamic instance */
概念