1. ホーム
  2. c

[解決済み] スカラーオブジェクトはイニシャライザーに1つの要素が必要

2022-02-07 11:11:08

質問

のベクトルを初期化したいのですが、なぜでしょうか? uint8_t

uint8_t *mmac_source1 = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x01 };

このようなエラーが発生します。

Error: scalar object 'mmac_source1' requires one element in initializer

しかし、私はこれを使用しているとき。

uint8_t mmac_source1[6] = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x01 };

は正常に動作しています。

解決方法は?

uint8_t *mmac_source1 = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x01 }; 

ここでは、ポインタに割り当てられたメモリはありません。 mmac_source1 は、アドレスを格納するためのプレースホルダーとして機能するだけです。

uint8_t mmac_source1[6] = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x01 };

ここで、コンパイラは配列に sizof(uint8_t)*6 バイトになります。