Ok,l' ho sistemato poi.
Non era così facile come pensavo,bisognava mettere a 1 tutta la porzione dell' array che va da [(ptr[i].data[1]-oggi[1])*2] a [(ptr[i].data[5]-oggi[1])*2] nel caso la nota abbia la targa 'I' e nel caso abbia la targa 'R' aumentare di 1 la dimensione.Così mi attiva tutti i bit compresi tra l' ora di fine e di inizio.
codice:
for(i=0;i<num;i++)
        {
            if((ptr[i].data[0]==oggi[0]||ptr[i].data[4]==oggi[0])&&((ptr[i].data[1]>=oggi[1]&&ptr[i].data[1]<=oggi[1]+7)
                ||(ptr[i].data[5]>=oggi[1]&&ptr[i].data[5]<=oggi[1]+7)))
            {
                if(ptr[i].targa=='I')
                {
                    int j=ptr[i].data[1];
                    while(j<ptr[i].data[5])
                    {
                        int k=(ptr[i].data[1]-oggi[1])*2;
                        while(k<=(ptr[i].data[5]-oggi[1])*2)
                        {
                            flag[j][k]=true;
                            k+=2;
                        }
                        j++;
                    }
                }
                else if(ptr[i].targa=='R')
                {
                    int j=ptr[i].data[2];
                    while(j<=ptr[i].data[6])
                {
                    int k=((ptr[i].data[1]-oggi[1])*2)+1;
                    while(k<=((ptr[i].data[5]-oggi[1])*2)+1)
                    {
                        flag[j][k]=true;
                        k+=2;
                    }
                    j++;
                }
            }
            else if(ptr[i].targa=='M')
                flag[0][(ptr[i].data[1]-oggi[1])]=true;
            else
                flag[0][(ptr[i].data[1]-oggi[1]+1)]=true;
        }
    }