J'ai pour mission de créer un programme très rapide. Jusqu'à présent, l'algorithme de Bruteforce et Backtrack fonctionnent, mais j'ai trouvé un programme C qui semble être plus rapide. Maintenant, j'ai essayé de le convertir de C en Java, mais je suis incapable de convertir les pointeurs, car je ne comprends pas ce qui se passe avec les pointeurs. Ce sont les lignes qui doivent être converties:Convertir un pointeur C en Java
Edit: Je l'ai mis à jour les conversions à ce que je l'ai compris:
final int[] aStack = new int[MAX_BOARDSIZE * 2];
int bitfield; //That's what I've got so far
//Conversion 1:
register int* pnStack; -> int pnStack;
//Conversion 2:
pnStack = aStack + 1; -> pnStack = 1;
//Conversion 3:
pnStack = aStack + 1; -> pnStack = 1;
*pnStack++ = 0; -> aStack[pnStack++] = 0;
//Conversion 4:
bitfield = *--pnStack; -> bitfield = aStack[--pnStack];
//Conversion 5:
*pnStack++ = bitfield; -> aStack[pnStack++] = bitfield;
//Conversion 7:
pnStack == aStack -> pnStack == aStack[0] ???????
Une solution serait bien, mais je vais essayer de trouver moi-même si vous pouvez m'expliquer ce qui se passe ici. Les pointeurs sont la raison pour laquelle je n'ai jamais vraiment appris c et C++.
Cordialement, Dennis Fischer
lieu de pointeur, utilisez un index 'int'. – nhahtdh
J'ai lu à ce sujet, mais je n'ai aucune idée de ce que je dois faire :). Supposons que pnStack est de type int: pnStack = aStack +1; Quel est le résultat enregistré dans pnStack maintenant? –
Non, vous voulez que nIndex = 1 corresponde à pnStack = aStack + 1, sûrement. –