「パターン」構造ベクトルにバイト行列を追加する関数を実装する方法について、いくつか質問があります。
これが私のコード構造です:
struct pattern<br>
{
byte** map;
int size;
};
struct pattern* pvec;
int patterns = 0;
void add_pattern(byte** map, int size)
{
struct pattern p;
int i;
p.size = size;
p.map = (byte**) malloc(p.size * sizeof(byte*));
for (i = 0; i < size; i++)
p.map[i] = (byte*) malloc(4 * sizeof(byte));
p.map = map;
pvec[patterns] = p;
patterns++;
}
そして、バイトマトリックスの例:
{
{B1000,B0000,B0000,B0000},
{B0100,B0000,B0000,B0000},
{B0010,B0000,B0000,B0000},
{B0001,B0000,B0000,B0000},
{B0000,B0001,B0000,B0000},
{B0000,B0000,B0001,B0000},
{B0000,B0000,B0000,B0001},
{B0000,B0000,B0000,B0010},
{B0000,B0000,B0000,B0100},
{B0000,B0000,B0000,B1000},
{B0000,B0000,B1000,B0000},
{B0000,B1000,B0000,B0000}
}
しかし、これは良い方法ではないと思います。これは、この byte** 引数を関数に送信する方法が正確にわからないためです。他のパターンよりも「バイトの行」が少ないパターンがあることを考えると。
どうすればこれを別の方法で行うことができますか? たぶん、ビルド済みのパターン構造を引数として送信しますか?