struct BALL
{
char color ;
int radius ;
int counter;
int counter2;
};
float *a;
unsigned long *b;
unsigned char *c;
int counter_data;
int main
{
//read data
for (int k=0;k<100;k++)
{
...
...
...
ball[k].counter2 = counter_data;
if (ball[k].counter2 != ball[k].counter)
{
ball[k].counter2 = ball[k].counter;
if (a!=NULL)
{
free(a);
a=NULL;
}
if (b!=NULL)
{
free(b);
a=NULL;
}
if (c!=NULL)
{
free(c);
a=NULL;
}
a=malloc(ball[k].counter2*sizeof(a));
b=malloc(ball[k].counter2*sizeof(b));
c=malloc((int)ceil(ball[k].counter2/8.0)*sizeof(c));
/*
a=malloc(ball[k].counter2*sizeof(float));
b=malloc(ball[k].counter2*sizeof(unsigned long))
c=malloc((int)ceil(ball[k].counter2/8.0)*sizeof(unsigned char) );
*/
}
}
..
...
...
// write data
...
for (int j=0;j<100;j++)
{
...
...
...
ball[j].counter2 = counter_data;
if (ball[j].counter2 != ball[j].counter)
{
ball[j].counter2 = ball[j].countea;
if (a!=NULL)
{
free(a);
a=NULL;
}
if (b!=NULL)
{
free(b);
a=NULL;
}
if (c!=NULL)
{
free(c);
a=NULL;
}
a=malloc(ball[j].counter2*sizeof(a));
b=malloc(ball[j].counter2*sizeof(b));
c=malloc((int)ceil(ball[j].counter2/8.0)*sizeof(c));
/*
a=malloc(ball[j].counter2*sizeof(float));
b=malloc(ball[j].counter2*sizeof(unsigned long))
c=malloc((int)ceil(ball[j].counter2/8.0)*sizeof(unsigned char) );
*/
}
}
}