1,649
社区成员
发帖
与我相关
我的任务
分享
//假设:后面的变量均依赖前面的变量,p4 -> p3 ->p2 ->p1
int Test()
{
char* p1 = new char[10];
if (!p1)
{
return -1;
}
char* p2 = new char[11];
if (!p2)
{
delete p1;
return -1;
}
char* p3 = new char[12];
if (!p3)
{
delete p1;
delete p2;
return -1;
}
char* p4 = new char[13];
if (!p4)
{
delete p1;
delete p2;
delete p3;
return -1;
}
//do something
//...
//
delete p1;
delete p2;
delete p3;
delete p4;
return 0;
}
//假设:后面的变量均依赖前面的变量,p4 -> p3 ->p2 ->p1
int Test()
{
char* p1 = new char[10];
if (!p1)
{
goto error;
}
char* p2 = new char[11];
if (!p2)
{
goto error;
}
char* p3 = new char[12];
if (!p3)
{
goto error;
}
char* p4 = new char[13];
if (!p4)
{
goto error;
}
//do something
//...
//
done:
return 0;
error:
if(p1) delete p1;
if(p2) delete p2;
if(p3) delete p3;
if(p4) delete p4;
return -1;
}
char *p1 = NULL, *p2 = NULL, *p3 = NULL, *p4 = NULL;
if ((p1 = new char[10]) && (p2 = new char[11]) && (p3 = new char[12]) && (p4 = new char[13]))
{
// do something
}
delete[] *p4;
delete[] *p3;
delete[] *p2;
delete[] *p1;
int Test()
{
char *p1=new char[10];
char *p2=new char[11];
char *p3=new char[12];
char *p4=new char[13];
bool s=(NULL!=p1)&&(NULL!=p2)&&(NULL!=p3)&&(NULL!=p4);
if(s)
{
//做爱 做的事
}
delete p1;
delete p2;
delete p3;
delete p4;
if(s) return 0;
else return -1;
}