こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

構造体内の配列に別の配列の値を代入して初期化したい

以下の構造体があります

typedef struct
{
unsigned id;
unsigned char data[8];
}
Packet;

これを初期化したい場合、たとえば以下の構文を使います

static const Packet packet = {0x152, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"};

これならば問題ないのですが、実際には以下の内容を実現したいと思っています

int data[8] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
static const Packet packet = {0x152, data};

上記内容では当然エラーが起きますが、やりたいことのニュアンスは伝わると思います
これを実現する方法を教えてください

なお、このプログラムはマイコン上で走らせるため、可能な限りノンストレスで動くことが望ましいです

投稿日時 - 2013-04-03 11:05:30

QNo.8024899

困ってます

質問者が選んだベストアンサー

下のように初期化するのでは駄目ですか?

static const Packet packet = {0x152, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}};

投稿日時 - 2013-04-03 12:41:59

お礼

{0x152, {data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7]}};

上記のようにすることにしました
的確なアドバイスありがとうございました

投稿日時 - 2013-04-03 13:12:40

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

初期化する値をマクロにする

投稿日時 - 2013-04-03 12:38:14

お礼

アドバイスありがとうございました

投稿日時 - 2013-04-03 13:12:53