2010-12-13 3 views
0

Je veux utiliser LZO pour compresser un tableau d'int ou d'octet. J'ai donc besoin de copier le tableau int dans un * char puis je vais le compresser et le sauvegarder dans un fichier. Et après j'ai besoin de faire l'opération inverse. Je vais ouvrir le fichier lu avec * Char et le décompresser en tableau de int.Tableau de Int et * Char-C++

Je ne veux pas jeter un oeil dans le * char pour convertir chaque int. Est-ce le moyen de le faire rapidement?

char *entrada; 
int *arrayInt2; 
int arrayInt1[100]; 
int ctr; 

for(ctr=0;ctr<=100; ctr++) 
{ 
    arrayInt1[ctr] = ctr; 
} 

entrada = reinterpret_cast<char *>(arrayInt1); 
arrayInt2 = reinterpret_cast<int *>(entrada); 

return 0; 

Je veux quelque chose comme ça. Est-ce correct? Merci

+1

Qu'est-ce qu'un '* char'? Voulez-vous dire «char *»? Pensez à commencer par obtenir un [bon livre C++ d'introduction] (http://stackoverflow.com/questions/388242/the-definitive-c++-book-guide-and-list). –

Répondre

1

Vous pouvez traiter le tableau entier directement un caractère (binaire) tampon et le transmettre à votre fonction de compression:

char *buffer = reinterpret_cast<char *>(my_int_array); 

Et même, lorsque vous décompressez dans un tampon de caractères, vous pouvez l'utiliser comme un tableau entier:

int *array = reinterpret_cast<int *>(my_char_buffer); 

Assurez-vous que vous garder une trace de la longueur initiale du tableau entier et que vous ne consultons pas les indices non valides.

+0

MERCI BEAUCOUP !! Ça marche! –

Questions connexes