Pregunta

Quiero utilizar LZO para comprimir una matriz de int o byte. Así que tengo que copiar la matriz int a char * a continuación, voy a comprimir y guardar en el archivo. Y después de lo que necesito operación inversa. Voy a abrir el archivo leyó con * Char y la descompresión de matriz de int.

No quiero hacer una mirada en el char * para convertir cada int. Es el de cualquier manera de hacer esto quickily?

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;

Quiero algo como esto. ¿Es esto correcto? Gracias

¿Fue útil?

Solución

Puede tratar el arreglo de enteros directamente como una (binaria) búfer de caracteres y pasarlo a su función de compresión:

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

Y del mismo modo, cuando se descomprime en una memoria intermedia de caracteres, se puede usar como una matriz de enteros:

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

Asegúrese de que usted no pierde de la longitud original de la matriz entera y que no accede a los índices válidos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top