Копирование каждого n-го элемента из одного массива в другой

Кто-нибудь знает способ скопировать каждый n-й элемент из одного массива в другой? Например, у меня есть массив Data [x] и я хочу скопировать каждый третий (третий) элемент - Data [0], Data[3], Data[6] и т. Д. В новый массив Data2 [j]. Я пытался использовать цикл for, но безуспешно.

void StoreData()
{
bufferPointer1 = &BufferA[0];
x=0;
i=0;
j=0;

while (x<NO_SAMPLES-1)
{
    Data[x] = *bufferPointer1;
    bufferPointer1++;
    x++;
    for (j=0; j<127; i++)
        {
        Data2[j] = Data[i+=3];
        j++;
        }
}
}

1 ответ

Почему вы не объявляете переменные в функции? Все четыре из них, кажется, используются локально и не должны быть видны вне функции.

Зачем увеличивать i в этом разделе вместо j, это опечатка?

   for (j=0; j<127; i++)
        {
        Data2[j] = Data[i+=3];
        j++;
        }

Я бы написал это так:

   for (j=0; j<127; j++)
        {
        Data2[j] = Data[i];
        i+=3;
        }
    i=0;                      // Reset pointer
Другие вопросы по тегам