Bonjour a tous,
je me retrouves devant un problème que je ne comprend absolument pas.
J'ai 2 codes similaires, qui pour moi, devraient donner le même résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 int i, j; for(i=0; i<_mesh->nEdges; i++) { if(_mesh->edges[i]->id == _edge->id) { j=i; free(_mesh->edges[i]); break; } } for(i=j; i<_mesh->nEdges-1; i++) { _mesh->edges[i] = _mesh->edges[i+1]; } _mesh->nEdges--;Pour moi, le deuxième code utilise le break pour sortir du for, i devrait être de la même valeur que id, c'est la seule différence. Il semble bien avoir la même valeur que id (ce qui me parait logique), mais le résultat de l'utilisation de ce bout de code me donne des choses totalement différentes..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 int i, j; for(i=0; i<_mesh->nEdges; i++) { if(_mesh->edges[i]->id == _edge->id) { free(_mesh->edges[i]); break; } } for(j=i; j<_mesh->nEdges-1; j++) { _mesh->edges[j] = _mesh->edges[j+1]; } _mesh->nEdges--;
Une idée ?
Merci d'avance
Partager