程序如下 #include<iostream> using namespace std; int main() { int *a=new int(1); int *b=new int(2); int *c=new int(3); cout<<a<<' '<<*a<<endl; cout<<b<<' '<<*b<<endl; cout<<c<<' '<<*c<<endl; return 0; } 运行结果如下: 0x21390 1 0x213a0 2 0x213b0 3 |
int *p = new int(5);
这句是从堆上分配一个int型变量所占的字节内存,这个内存单元存放的整数值为5,然后让一个整形的指针变量p指向它的地址。
释放方式:delete p;
int *p = new int[5];
这句相当于从堆上分配一个含有5个元素的整形数组所占的字节内存,然后让一个整形的指针变量p指向它的首址。
释放方式:delete []p;(注意这个[]不能掉了,如果掉了就会只释放P[0]所占的空间,p[1]到p[4]不会被释放,产生内存泄露。)