I campi oggetto e testo sono dei puntatori a stringhe,uso questa funzione per tirare su i caratteri da stdin o da file e allocare la memoria necessaria:
codice:
char* get_string(FILE *fp)
{
    char *ptr;
    ptr=(char*)malloc(sizeof(char));
    if(ptr==NULL)
    {
        printf("Errore di lettura/inserimento dei dati,l' applicazione verra' chiusa\n");
        exit(1);
    }
    int i=1,ci;
    if(fp==stdin)
      fflush(fp);
    else
    {
        ci=fgetc(fp);
        if(ci!='\n')
          fseek(fp,-1,SEEK_CUR);
    }
    ptr[0]='\0';
    while(ci!=10&&ci!=EOF)
    {
        ptr=(char*)realloc(ptr,i*sizeof(char));
        if(ptr==NULL)
        {
            printf("Errore di lettura/inserimento dei dati,l' applicazione verra' chiusa\n");
            exit(1);
        }
        ci=fgetc(fp);
        if(ci!=10)
          ptr[i-1]=ci;
        else
          ptr[i-1]='\0';
        i++;
    }
    return ptr;
}
Anche se poi so che non è perfetta.
I campi oggetto e testo non sono usati in questa porzione di codice.Il codice è chilometrico,in questa porzione il mio problema è assegnare i bit giusti,ma non ci riesco
Se non avete capito il criterio con cui voglio assegnare i bit perchè mi sono spiegato male,chiedete pure.Non riesco proprio a dargli un senso,solo i bit con dimensione 0 e 1 si "avverano",gli altri non li tocco nemmeno e non capisco il perchè