2015-08-16 3 views
0

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

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++; 
     } 
} 
} 
+0

Я использую dspic33fj с xc16 – JBH

ответ

0

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

Зачем увеличивать 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