What exactly do you want your delete function to do ?
(1) Delete a specific student (getting his ID from user) :
(Of course, assuming ID to be unique)
void delete(student array,const unsigned int MAX_STUDENT)
unsigned int ID;
cout << "Enter the ID of the student to be removed : ";
cin >> ID;
for(unsigned int i = 0 ; i < MAX_STUDENT; i++)
// search for the id
if(array[i].id == ID)
// move all ids after the required one, one step backward in the list
for(unsigned int j = i ; i < MAX_STUDENT-1; j++)
array[i] = array[i+1];
if(found) cout << "ID " << ID << " removed successfully !\n";
else cout << "ID " << ID << " was not found !\n";
In this case, remember to reduce the count of MAX_STUDENT or whichever variable you use to store the total number of students in the list, by one (after calling the delete function). The delete function cannot modify it's value as you are passing it as a "const".
(2) Delete the whole list :
Just make the count 0 so that new values will be written "over" the old values.