注:以下大部分内容来源于 coursera 课程《C++程序设计》
用new 运算符来实现动态内存分配
new运算符返回的值的类型:T* ,就是指针
第一种用法:分配一个变量
P = new T;
T代表类型的名字,P代表一个指针T*,
作用: 动态分配出一片大小为sizeof(T)字节的内存空间。 然后,并且把这个内存的起始地址赋值给P。
int *pn;
pn = new int;
*pn = 5;
(P是地址,*P是内容)
第二种用法:分派一个数组
P = new T[N];
动态分配出一片大小为N*sizeof(T)这么多个字节的这个内存空间, 并且把这个内存空间的起始地址赋值给这个P。
int *pn;
int i = 5;
pn = new int [i*20];
pn[0] = 20;
pn[99] = 100;
用delete运算符释放动态分配的内存
用了new,就要用delete,不然一直会被占用。
int *pn = new int;
*p = 5;
delete p;
delete指向的必须是new分配的空间。
int *pn = new int[10];
p[0] = 5;
delete []p;
网友评论