_stuckVertices
est un tableau de pointeurs et je voudrais mettre à jour un index de ce tableau sans utiliser _stuckVertices[ (row * _cols) + column ]
3 fois. La raison pour laquelle c'est un tableau de pointeurs est parce que la grande majorité du temps le pointeur sera NULL. Le code fonctionne suivant mais je dois déréférencer un chaque fois que je l'utilise:C++ Pointer Problème
void Cloth::stickPoint(int column, int row)
{
Anchor **a = &_stuckVertices[ (row * _cols) + column ];
if (!*a)
*a = new Anchor(this, column, row);
(*a)->stick();
}
je l'avais à l'origine, il écrit comme cela, mais le pointeur _stuckVertices ne soit pas mis à jour:
void Cloth::stickPoint(int column, int row)
{
Anchor *a = _stuckVertices[ (row * _cols) + column ];
if (!a)
a = new Anchor(this, column, row);
a->stick();
}
est-il un moyen d'écrire Anchor *a = _stuckVertices[ index ]
de sorte que a
est comme un alias dans le tableau que je peux mettre à jour, ou est quelque chose comme le premier morceau de code comment je devrais faire cela?
Merci
Vous répondez à une autre de mes questions, merci :) En C utiliserait ** et déréférencer partout être la seule option? – Winder
* Deuxième tentative, je dois apprendre à lire;) * Oui, malheureusement en C il n'y a pas de vrais alias. –
Vous pouvez utiliser une macro en C, '#define a (_stuckVertices [(row * _cols) + colnum])', vous devez juste faire attention avec (vous devez également faire attention à la référence, mais pour des raisons légèrement différentes et de différentes manières). –