J'ai cette méthode simple pour déplacer un élément dans un tableau.Ce morceau de code C/Obj-C me dérange
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;
}
Dans mon en-tête de classe i défini un struct
@interface MyClass : NSObject {
struct {
uint32_t cookie[10];
uint32_t value[10];
} queue;
}
Je mets à plusieurs reprises des éléments devant les deux files d'attente
queuePut((uint32_t)cookie, myClassInstance->queue.cookie, cookieQueueLen);
queuePut((uint32_t)intValue, myClassInstance->queue.value, valueQueueLen);
Quand je fais ma valeur mise en page de file d'attente est la suivante sur heure:
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.
Quand je supprime la première ligne queuePut((uint32_t)cookie, ...
la file d'attente de valeur indique ce (ce que je veux que ce soit):
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.
Quelles sont les causes de cette?
Cordialement, Erik
oh mon dieu je ne peux pas croire à quel point je suis stupide. J'étais assis heures et je ne vois pas! mais parfois vous avez juste besoin d'une autre personne pour vous montrer l'évidence;) –