int n;int *p=&n;这两条语句创建了静态数据,内存的分配方式是静态分配。在C++中用new来动态分配内存,得到分配内存的首地址(C中是malloc系统函数),用new分配的内存在使用完之后要释放(delete),否则造成内存泄露。
1.分配一个某类型长度对应的内存,如int型 也可以时char double,类 删除:delete 指针
int *p; p=new int;或int *p=new int;
获取p地址中的数据(*p)
point *p=new point(1,2);//调用相应构造器
获取对象中的成员变量,注意私有成员不可在类外访问:p->x或(*p).x
调用成员函数,私有成员外部不可访问:p->getX()或(*p).getX()
删除:
delete p;
2.连续分配多个内存,删除 :delete [] 指针
double *p=new double[50];
point *p=new point[10]; //每个point对象调用无参构造器构造的
point *p=new point(1,2)[10];//错误在c++98中
point *p=new point[10](1,2);//错误c++98
删除:
delete [] p;
注意:delete 指针 或 delete [] 指针 释放的是动态分配的那段内存(new的对象)