64,691
社区成员
发帖
与我相关
我的任务
分享
class A
{
public:
A();
~A();
};
class B
{
public:
B():p1(NULL){};
~B(){delete p1;//delete空指针是没有问题的,放心,即使Fun从没调用也无所谓}
A* p1;
A* Fun()
{
delete p1;
p1 = new A();
return p1;
}
}
void main()
{
B* b1 = new B();
b1->Fun();
b1->Fun();
delete b1;
}
#include <cstdio>
void run_once()
{
static const char *lines[] = {"This sentence should be", "printed for only once!"};
static const char **p = lines;
std::printf("%s\n", *p);
++p;
std::printf("%s\n", *p);
}
int main()
{
run_once();
run_once(); // 访问越界
return 0;
}
class A
{
public:
A();
~A();
};
class B
{
public:
B();
~B(){delete p1;}
A* p1;
A* Fun()
{
if(p1!=NULL)
delete p1;
p1 = new A();
return p1;
}
}
void main()
{
B* b1 = new B();
b1->Fun();
b1->Fun();
delete b1;
}