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;
}
原文:http://www.cnblogs.com/zgyseu/p/3717952.html