帮忙找到错误并改正!!!!

#include
#include
#include
typedef struct
{
int a;
int b;
} DOUBLE_INT, *Double_int;

Double_int a[4];

int main()
{
int i;

for ( i=0; i < 4; i++)
{
    a[i]->a = (i+1);

    a[i]->b = (i+1)<<1;

}

for ( i=0; i < 4; i++)

{
    if (a[i]-> a & 1)

        printf("a is Odd : a.a = %d a.b = %d\n",a[i]->a,a[i]->b);

    else

        printf("a is even: a.a = %d a.b = %d\n",a[i]->a,a[i]->b);
}
return 0;

}

for ( i=0; i < 4; i++)
{
a[i] = new DOUBLE_INT();
a[i]->a = (i+1);

a[i]->b = (i+1)<<1;

}

指针 a 定义了,在使用前需要分配内存空间。
使用 new 或 malloc 都可以的,使用完成后也需要释放分配的空间,否则会产生内存泄露。释放使用 delete 或 free。