关于一个类的新产生的对象的内存分配情况疑问?
1 我在有的地方看到一般把内存划分堆,栈(什么情况是在这上面分配),自由空间(还有其它的吗?它们的区别)
凡是用new自己申请都是在堆上开辟的,用完需要自己delete手动释放(与其它分配方式仅仅有这样的区别吗?)
malloc分配的好像是自由空间吧!
那一般的int a=5,*p;是在哪里分配的?好像它们生命期结束是由系统自动回收
那int a=5;中的5又是放在哪里?
2 一个类有很多变量和函数如:
class CMy
{
public:
int a,b;
int *p,q;
CMy()
{
a=5;
b=10;
p=new int(100);
q=(int *)malloc(sizeof(int));//c++里面好像也能用这个函数吧!
}
void Function1();
void Function1();
...
};
我实例化一个对象 CMy my;后它会首先开辟相应的所有空间(包括变量和函数,
且是连续的)吗?且CMy my2与my的空间也是联系的吗?(我测试了一下似乎是的)