kohler1000 Veterano |
# mai/11
Olá!
Estou desesperado, tenho até segunda-feira para fazer esse TP e as vezes aparecem uns erros que eu não entendo nem FODENDO!
Não adianta eu criar tópicos em fóruns de programação ou comunidades no orkut pois as respostas demoram, ou, às vezes, nem aparecem. Como o prazo é curto e aqui as respostas costumam vir mais rapidamente, apelo pra cá!
Desde já agradeço a todos que contribuirem, ao longo dessa jornada de 3 dias.
Em relação ao trabalho:
Objetivo -
Implementar, em C, um algorítmo para um compactador/descompactador de arquivos utiliznado o algorítmo de Huffman. Serão considerados 256 tipos de caracteres, 8 bits cada.
Entrada -
Você deve implementar dois módulos. Um para compressão e outro para descompressão de arquivos. O módulo de compressão deverá se chamar comprima (no Linux) ou comprima.exe (no Windows). O módulo de descompressão deverá se chamar descomprima (no Linux) ou descomprima.exe (no Windows). Os módulos serão executados por linha de comando, da seguinte maneira:
- ./comprima <file_out> <file_in>
Onde <file_in> é o nome do arquivo a ser comprimido e <file_out> o nome do arquivo que será criado com o resultado da compressão;
- ./descomprima <file_out> <file_in> Onde <file_in> é o nome do arquivo com o conteúdo comprimido e <file_out> é o nome do arquivo onde o resultado da descompressão deverá ser armazenado. ATENÇÂO: Seu compressor/descompressor deve ser capaz de lidar com arquivos de até 1GB. Tome cuidado na hora de escolher os tipos de variáveis para não haver overflow.
Saída -
As saídas de cada módulo são o arquivo comprimido para módulo de compressão e o arquivo descomprimido para o módulo de escompressão. Em ambos os casos não é necessário imprimir nada na tela durate/após o processamento.
Tendo isso em vista, comecei a programar. A primeira coisa que eu fiz foi criar uma estrutura de lista, num arquivo lista.c, vide http://pastebin.com/SH7NXzY5
No arquivo main.c (vide http://pastebin.com/BPwG22sr) eu estou tentando fazer uma função que, dado um arquivo e uma lista especificados por parâmetros, leia os caracteres do arquivo um a um e, caso não haja ainda uma célula da lista para o tal caractere, ele crie e a coloque na lista; caso já haja, ele simplesmente soma 1 à variável celula.frequencia. Porém já aí eu tive problemas, onde, ao compilar aparece 4 vezes o seguinte erro nas linhas 27, 29, 32 e 34
"error: dereferencing pointer to incomplete type"
Então, primeira dúvida: Mas que porra de erro é esse? E por que está acontecendo?
|