1. ホーム
  2. ios

[解決済み] 配列型 'int [16]' は代入不可能です。

2022-02-14 18:53:28

質問

最新のSDKでiOSアプリケーションを開発しています。

で行いたいのですが .mm ファイルを作成します。

@interface MyClass ()
{
   int _cars[16];

   ...
}

@end

@implementation MyClass

-(id)init
{
    self = [super init];

    if (self)
    {
        _cars = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    }

    ...
}

しかし、次のようなエラーが発生します。

Array type 'int [16]' is not assignable

このエラーはどうすれば直りますか?

解決方法は?

配列を初期化するだけの場合。

int _cars[16] = {0};

余分なゼロを落としても大丈夫です。コンパイラが判断してくれます。C言語では配列全体を代入することはできないので、この場合コンパイラは文句を言うのです。初期化しかできないので、宣言の一部として行われた場合にのみ、代入は初期化とみなされるのです。