Я новичок в C, и проблема, с которой я сталкиваюсь, заключается в том, что у меня есть бинарный файл, который распакован (то есть в определенном формате) ..
То, что я должен сделать, это упаковать его и снова распаковать и посмотреть, соответствует ли оно оригинальной распакованной версии.
Стоит упомянуть одну вещь: мне сказали, что функция упаковки (то есть преобразования в упакованную) и распаковки (то есть преобразования в распакованную) работает хорошо. Просто хочу подтвердить это для себя и немного узнать о C ...
У меня есть два момента, когда я думаю, что делаю ошибку
1: как я читаю файл
2: Я неправильно рассматриваю тип переменной упакованный и распакованный (т. Е. Для упакованного это беззнаковый символ *, а для распакованного - короткий *)
int main(void) {
FILE *fp;
unsigned char* packed ;
short* unpacked;
size_t result;
int fileSize;
fp = fopen(FILENAME, "rb");
fseek (fp , 0 , SEEK_END);
fileSize = ftell (fp);
rewind (fp);
unpacked = (short*) malloc (sizeof(char)*fileSize);
result = fread(unpacked,1,fileSize,fp);
short *originalUnpacked = unpacked;
convert_to_packed(&unpacked, &packed);
convert_to_unpacked(&unpacked, &packed);
if (originalUnpacked == unpacked)
{
puts ("Thats it !!");
}
fclose(fp );
return EXIT_SUCCESS;
}