このような状況はかなり頻繁に発生します。配列をループし、いくつかの要素が何らかの要件を満たしている場合、後でそれらのインデックスを追跡したいとします。これが私が意味することです:
for(i=0;i<10;++i)
{
if(array[i] > 10)
{
//Keep track of this index for later use.
}
}
簡単な解決策は、10 要素の配列を作成することです。2 番目の要素が 10 より大きい場合は、index[i] = 1; を実行できます。しかし、私はこのアプローチはあまり良くないと感じています。これを格納するには大きな配列が必要になり、ほとんどのスペースが無駄になります。
私のアプリケーションでは、ビット配列に設定されているビットを見つけようとしています。したがって、ビット 0 と 10 が設定されている場合は、後でプログラムで使用できるようにこれらの数値を保存する必要があります。これについて最善の方法は何ですか?
このコードは AVR Mega で実行する必要があり、私は AVR-GCC を使用しているため、C のみのソリューションが必要です。