2010-12-13 90 views
0

我想使用LZO来压缩int或byte的数组。所以我需要将int数组复制到* char然后我将压缩并保存到文件。之后我需要做逆向操作。我将打开文件读取它与* char和解压到int数组。数组的Int和* Char - C++

我不想在* char中查看来转换每个int。有没有办法快速做到这一点?

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; 

我想要这样的东西。它是否正确? 感谢

+1

什么是* char?你的意思是'char *'?考虑首先获得[良好的介绍性C++书](http://stackoverflow.com/questions/388242/the-definitive-c++-book-guide-and-list)。 – 2010-12-13 00:57:13

回答

1

您可以直接把整数数组为(二进制)的字符缓冲区,并将它传递给你的压缩功能:

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

而且同样,当你解压缩到一个字符缓冲区,您可以使用它作为一个整数数组:

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

确保您跟踪整数数组的原始长度,并且不访问无效索引。

+0

非常感谢!有用! – 2010-12-13 01:45:22