Int和* Char的数组 - C ++

时间:2010-12-13 00:52:21

标签: c++ lzo

我想使用LZO压缩int或byte数组。所以我需要将int数组复制到* char然后我将压缩并保存到文件。之后我需要做反向操作。我将打开文件,用* Char读取它,并解压缩到int。

数组

我不想在* 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 个答案:

答案 0 :(得分:1)

您可以将整数数组直接视为(二进制)字符缓冲区并将其传递给压缩函数:

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

类似地,当您解压缩到字符缓冲区时,可以将其用作整数数组:

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

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