Нам был назначен проект сжатия ASCII для системного программирования, и мне трудно с одной конкретной строкой в моем коде.
Я задал вопрос о сжатиии я адаптировал код массива к своей программе после проработки первых дюжин букв файла образца на бумаге.В ddd значения массива packed[]
- это то, что я разработал на бумаге, но значения не записываются в файл.
unsigned char packed[7]; //compression storage
int i, jCount;
int j;
int bufferLength= sizeof(unpacked)/sizeof(char);
//loop through the buffer array
for (i=0; i< bufferLength-1; i++){
j= i%7;
jCount++;
//fill up the compressed array
packed[i]= packer(unpacked[i], unpacked[i+1], j);
//compressed array is full, write to file, then clear
if ((j%7==6) && (j > 1)){
int writeLoop;
for (writeLoop=0; writeLoop < 8; writeLoop++){
//printf("%X", packed[writeLoop]); //write to screen
write(openWriteFile, &packed[writeLoop], 1);//this is my trouble, write to file
}
memset(&packed[0], 0, sizeof(packed)); //clear array
}
//more code down here for padding the end of short bytes.
Функция записи ожидает const void *
какВторой аргумент, поэтому я ссылаюсь на значение этого конкретного слота массива, но ничего не записывается в файл.
Когда я удаляю &, я получаю предупреждение о компиляции.
Будем благодарны за любые предложения направить меня по правильному пути.