Зачем вам нужно выделять память, объявление
PRO Array[100];
Уже выделена память - при условии, что ваше определение PRO является чем-то вроде;
typedef struct {
.....
} PRO;
Просмотр вашего кода;
// Declare a new pointer, and assign malloced memory
PRO *newPro = (PRO *) malloc (sizeof(PRO));
// override the newly declared pointer with something else, memory is now lost
newPro = enteringProcess;
// Take the content of 'enteringProcess' as assigned to the pointer,
// and copy the content across to the memory already allocated in ProArray[0]
ProArray[0] = *newPro;
Вы, вероятно, хотите что-то подобное вместо этого;
typedef struct {
...
} PRO;
PRO *Array[100]; // Decalre an array of 100 pointers;
PRO *newPro = (PRO *) malloc (sizeof(PRO));
*newPro = enteringProcess; // copy the content across to alloced memory
ProArray[0] = newpro; // Keep track of the pointers