首页 > 代码库 > 函数返回出口唯一

函数返回出口唯一

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;

}