This code compiles but crashes while running.

```
typedef struct student{
    char name[ 20 ];
    char last[ 20 ];
    unsigned long int ID;
    char email[ 20 ];
    char BA[ 4 ]; 
} *stu;

stu source[ 20 ];

for( int i=0; i<11 ;i++ )  //copy from file to array
{
    if( fscanf( f1 ,"%s%s%u%s%s", &( source[ i ]->name ), &( source[ i ]->last ), &( source[ i ]->ID ), &( source[ i ]->email ), &( source[ i ]->BA ) ) == EOF );
}

```

this is the code it brings up when it crashes, it stops on this line (the popup windows name is input.c)

```
#ifndef _UNICODE
    *(char *)pointer = (char)ch;  /* stops on this line */
    pointer = (char *)pointer + 1;

```

The error message I get is "Unhandled exception at ... in ...exe: 0xC0000005: Access violation writing location 0xccccccc". 

Does anyone know why?