Такая ситуация возникает довольно часто.Вы перебираете массив, и если некоторые элементы удовлетворяют некоторому требованию, вы хотите отслеживать их индексы на потом.Вот что я имею в виду:
for(i=0;i<10;++i)
{
if(array[i] > 10)
{
//Keep track of this index for later use.
}
}
Простым решением было бы создать массив из 10 элементов, и если, скажем, 2-й элемент больше 10, можно сделать индексы [i] = 1;Но я чувствую, что такой подход не так хорош.Мне понадобится большой массив для хранения этого, и большая часть пространства будет потрачена впустую.
В моем приложении я пытаюсь найти, какие биты установлены в битовом массиве.Поэтому, если установлены биты 0 и 10, мне нужно сохранить эти числа для последующего использования программой.Каков наилучший способ сделать это?
Этот код должен работать на AVR Mega, и я использую AVR-GCC, поэтому требуется решение только для C.