У меня есть этот простой метод для перемещения элемента в массиве.
void queuePut(uint32_t val, uint32_t *q, int qlen) {
for (int i=qlen; i>0; i--) {
q[i] = q[i-1];
}
q[0] = val;
}
В моем заголовке класса я определил структуру
@interface MyClass : NSObject {
struct {
uint32_t cookie[10];
uint32_t value[10];
} queue;
}
Я неоднократно помещал элементы передqueues
queuePut((uint32_t)cookie, myClassInstance->queue.cookie, cookieQueueLen);
queuePut((uint32_t)intValue, myClassInstance->queue.value, valueQueueLen);
Когда я делаю это, мое расположение очереди значений выглядит следующим образом:
0.0.0.0.0.0.0.0.0.0.
0.0.0.0.0.0.0.0.0.0.
0.0.0.0.0.0.0.0.0.0.
1.0.0.0.0.0.0.0.0.0.
1.0.0.0.0.0.0.0.0.0.
0.0.0.0.0.0.0.0.0.0.
0.0.0.0.0.0.0.0.0.0.
0.0.0.0.0.0.0.0.0.0.
0.0.0.0.0.0.0.0.0.0.
0.0.0.0.0.0.0.0.0.0.
Когда я удаляю первую строку queuePut((uint32_t)cookie, ...
очередь значений показывает это (хочу, чтобы это было):
0.0.0.0.0.0.0.0.0.0.
0.0.0.0.0.0.0.0.0.0.
0.0.0.0.0.0.0.0.0.0.
1.0.0.0.0.0.0.0.0.0.
1.1.0.0.0.0.0.0.0.0.
0.1.1.0.0.0.0.0.0.0.
0.0.1.1.0.0.0.0.0.0.
0.0.0.1.1.0.0.0.0.0.
0.0.0.0.1.1.0.0.0.0.
0.0.0.0.0.1.1.0.0.0.
Чем это вызвано?
С уважением, Эрик