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)

Code: CPP
void delete(student array[],const  unsigned int MAX_STUDENT)
{
  bool found=false;
  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];
      found=true;
      break;
    }
  }
  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 :
Simple enough.
Just make the count 0 so that new values will be written "over" the old values.