#include <iostream>
using namespace std;
class A
{
public:
A(){cout<<"A";}
~A(){cout<<"~A";}
};
class B
{
A *p;
public:
B(){cout<<"B";
p=new A();
}
~B()
{
cout<<"~B";
delete p;
}
};
int main()
{
B obj;
return 0;
}
#include <iostream>
using namespace std;
class myclass
{
public:
myclass(int x=0):i(x){cout<<"C"<<i;}
~myclass(){cout<<"D"<<i;}
void setvalue(int val){i=val;}
int getval(){return i;}
private:
int i;
};
int main()
{
myclass *p[3];
int i;
for(i=0;i<3;i++)
{
p[i]=new myclass(i);
p[i]->setvalue(p[i]->getval()*2);
}
for(i=0;i<3;i++)
delete p[i];
cout<<endl;
return 0;
}
#include <iostream>
using namespace std;
class AA
{
public:
AA(int i,int j)
{
A=i;
B=j;
cout<<"constructor\n";
}
AA(AA &obj)
{
A=obj.A+1;
B=obj.B+2;
cout<<"copyconstructor\n";
}
~AA()
{
cout<<"destructor\n";
}
void print()
{
cout<<"A="<<A<<",B="<<B<<endl;
}
private:
int A,B;
};
int main()
{
AA a1(2,3);
AA a2(a1);
a2.print();
AA *pa=new AA(5,6);
pa->print();
delete pa;
return 0;
}
本文深入探讨了动态内存分配的过程,包括使用malloc、calloc、realloc和free等函数进行内存请求和释放。详细解释了内存泄漏的概念,并提供了防止内存泄漏的策略。通过实例分析,阐述了内存管理在程序设计中的重要性和最佳实践。
1077

被折叠的 条评论
为什么被折叠?



