main.h
#define DATA struct data DATA { int id; char data; }
main.c
DATA *listOfData[100];
So at this
You haven't shown any memory allocation for the DATA *. Either declare your array as an array of struct data, like:
DATA listOfData[100];
or allocate memory dynamically and assign the pointers in your array.