Code:
void destroy(class* &i)
{
      delete i;
      i = NULL;
}

class arr[3] = .....  .
./*construction for each element*/

function(arr[0]);

This is working.
-------------version II-----------------
Code:
void destroy(class* i)
{
      delete i;
      i = NULL;
}

class arr[3] = .....  .
./*construction for each element*/
destroy(arr[0]);

This is n't working (Runngtime error);
Why? what does magic "&" do?