Ajuda com Trabalho Prático em C - Compactador Huffman!

    Autor Mensagem
    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?

    mikia
    Veterano
    # mai/11
    · votar


    ã?

    Igão
    Veterano
    # mai/11
    · votar


    O Próximo que postar sabe (ou é boiola).

    viniciusra
    Veterano
    # mai/11
    · votar


    O que postou antes de mim sabe ( ou é boiola )

    Igão
    Veterano
    # mai/11
    · votar


    viniciusra

    Veio todo alegre ser boiola e agora quer disfarçar, né? meninão...

    marcus c. f.
    Veterano
    # mai/11
    · votar


    Tente fazer o mesmo sem criar o typedef Ponteiro. Basta usar struct TipoCelula* diretamente. E use o sufixo .h para arquivos header. É só convenção mas é bom seguir.

      Enviar sua resposta para este assunto
              Tablatura   
      Responder tópico na versão original
       

      Tópicos relacionados a Ajuda com Trabalho Prático em C - Compactador Huffman!