l'expression doit avoir pointeur vers un objet de type,indice nécessite tableau ou un pointeur de type
class RC5 {
public:
RC5() :
_bufKey(new unsigned __int32[4]),
_bufSub(new unsigned __int32[26]) {
}
unsigned __int8 Test(unsigned __int8 data);
virtual ~RC5() {
delete [] _bufKey;
delete [] _bufSub;
}
private:
unsigned __int32 *const _bufKey;
unsigned __int32 *const _bufSub;
};
unsigned __int8 RC5::Test(unsigned __int8 data)
{
for (int i = 0; i < 4; i++)
{
_bufKey[i] = (unsigned __int32)(data[i * 4] + (data[i * 4 + 1] << 8) + (data[i * 4 + 2] << 16) + (data[i * 4 + 3] << 24));
}
}
j'ai eu cette erreur : l'expression doit avoir pointeur vers un objet de type,indice nécessite tableau ou un pointeur de type
- Pourquoi ne pas utiliser
std::vector
? - Parce que l'on a accepté de répondre à dans une autre question conseille des cette.
- Ah. :/ +1 à la vôtre pour vous.
Vous devez vous connecter pour publier un commentaire.
Il ressemble le problème est que dans votre fonction de Test vous êtes de passage dans les données comme un unsigned __int8 plutôt que comme un tableau de ces valeurs. Le subscripting avec des crochets est ce qui cause l'erreur. La modification de la fonction de la prendre de la valeur par le tableau devrait résoudre ce problème.