Nieznany blad

0

Cześć mam do zrobienia zadania liczenie poszczególnych bitów , w sumie wiem jak je zrobić jednak wywołując funkcję za to odpowiedzialną program się crashuje nie do końca wiem dlaczego.


struct pom
{
    unsigned char a : 1;
    unsigned char b : 1;
    unsigned char c : 1;
    unsigned char d : 1;
    unsigned char e : 1;
    unsigned char f : 1;
    unsigned char g : 1;
    unsigned char h : 1;
};

union liczba
{
    unsigned char n;
    struct pom abc;
};

struct st
{
    int b0;
    int b1;
    int b2;
    int b3;
    int b4;
    int b5;
    int b6;
    int b7;
};


int func(struct st* statistic, unsigned char value)
{
    if(statistic=NULL) return 1;
    
    union liczba tmp;
    tmp.n=value;
    
    if(tmp.abc.a==1)
    {
      statistic->b0+=1;
       
    }
    if(tmp.abc.b==1)
    {
        statistic->b1+=1;
    }
    
    if(tmp.abc.c==1)
    {
       statistic->b2+=1;
    }
    
    if(tmp.abc.d==1)
    {
      statistic->b3+=1;
    }
    
    if(tmp.abc.e==1)
    {
       statistic->b4+=1;
    }
    
    if(tmp.abc.f==1)
    {
       statistic->b5+=1;
    }
    if(tmp.abc.g==1)
    {
      statistic->b6+=1;
    }
    if(tmp.abc.h==1)
    {
      statistic->b7+=1;
    }


    return 0;   
}

Wywołanie w maine wygląda następująco

 struct st statistic;
char tmp;
while(!feof(in))
 {
         fscanf(in,"%c",&tmp);
         func(&statistic,tmp);
 }
0
if(statistic=NULL) return 1;

To przypadkiem nie jest zawsze true?

1 użytkowników online, w tym zalogowanych: 0, gości: 1