2 次元配列へのポインターに問題があります。ポインタは、可変サイズの配列を指す必要があります。
// create pointer to 2 dimensional array
TimeSlot **systemMatrix; // this is a global variable
関数で新しい配列を作成したい。
void setup(uint16_t lines, uint16_t coloumns) {
// create 2 dimensional array. size can be set here.
TimeSlot tmpTimeSlots[lines][coloumns];
// make the pointer point to this array
systemMatrix = tmpTimeSlots; // WARNING
}
しかし、ポインターが配列を指すようにすると、コンパイラーは「警告: 互換性のないポインター型からの割り当て」と表示します。さらに、別の関数から systemmatrix[2][5] にアクセスすると、ソフトウェアが実行される mikrocontroller にハード フォールトが発生します。
変数 systemMatrix は、後で tmpTimeSlots の要素にアクセスするときに必要になります。
のような組み合わせを試しました
systemMatrix = *(*tmpTimeSlot);
などがありますが、どれも機能していないようです。
どんな助けでも大歓迎です:)ありがとう!
編集: 問題が理解され、解決されました。どうもありがとうございました!