2

私はArduinoのプログラミングをしています。配列を使用したいのですが、配列の初期化に使用したのと同じコードでコードを実行しながら、配列の内容を変更したいと思います。

私がすることができます:

boolean framebuffer[6][5] = {
    {0,0,1,0,0},
    {0,0,0,1,0},
    {0,0,1,0,0},
    {0,1,0,0,0},
    {1,0,0,0,0},
    {1,1,1,1,1}
  };

しかし、私はこれを行うことはできません:

  framebuffer = {
    {0,0,1,0,0},
    {0,0,0,1,0},
    {0,0,1,0,0},
    {0,1,0,0,0},
    {1,0,0,0,0},
    {1,1,1,1,1}
  };

このように配列の内容を設定する可能性はありますか?次のように、各配列要素を個別に割り当てたくありません。

  framebuffer[0][0] = 0;
4

1 に答える 1

1

このように直接行うことはできませんが、すべての配列を事前定義memcpyしてから、次のようにすることができframebufferます。

// Put all your preconstructed items in some array.....
// You'd typically make this a global.

boolean glyphs[2][6][5] = {
    {
        {0,0,1,0,0},
        {0,0,0,1,0},
        {0,0,1,0,0},
        {0,1,0,0,0},
        {1,0,0,0,0},
        {1,1,1,1,1}
    },
    {
        {1,1,1,1,1},
        {1,0,0,1,1},
        {1,0,1,0,1},
        {1,1,0,0,1},
        {1,0,0,0,1},
        {1,1,1,1,1}
    }
};

// Then whereever you want to change the framebuffer in your code:
// copy the second into a framebuffer:
memcpy(framebuffer, glyphs[1], sizeof(boolean)*6*5);
于 2012-12-09T20:25:00.273 に答える