Suppose we define a WaitlistEntry as follows:

typedef struct{
int iPriority; /* Priority of the student to be enrolled */
int iStudentID; /* ID of the student */
}
WaitlistEntry;

Below are different implements of a function to create a WaitlistEntry from given iPriority and iStudentID data. Some of these implementations are flawed. Identify them and describe what is wrong with them briefly:

WaitlistEntry createWL( int iPriority, int iStudentlD )
WaitlistEntry w,
w.iPriority iPriority;
w.iStudentlD iStudentlD;
return w;

a. correct
b. incorrect, leaks memory
c. incorrect, syntax error
d. incorrect, data will be overwritten by next function call