函数返回出口唯一

void fun(char *str)

{

  char *a = new char[strlen(str)+1];

  memcpy(a, str, strlen(str)+1);

  if (...)

  {

     return;

  }

  else if (...)

  {

     return;

  }

  delete a;

  return;

}

 

以上的函数会导致a可能得不到释放,可以采用do  while的方式

void fun(char *str)

{

  char *a = new char[strlen(str)+1];

  memcpy(a, str, strlen(str)+1);

  do

  {

     if (...)

    {

        break;

    }

    else if (...)

    {

       break;

    }

  }while(0)

  delete a;

}

 

 

 

 

 

posted on 2014-05-08 23:52  zgyseu  阅读(184)  评论(0)    收藏  举报