new申请数据空间
c++中的new在堆区申请空间的时候的格式是:
int * p = new int(10); //该代码的意思就是说在堆区申请的内存赋值为10
//int 后面括号里面写的就是你的初始值
上面代码有一点需要注意的是,10这个数据在堆区,但是接收它的指针在栈区这得搞清楚
上述代码int后面写括号里面是它的初始化的值,但你要是不写任何值的话也可以,系统自动给你初始化为0
int main()
{
int* p = new int();
cout << *p << endl;
system("pause");
return 0;
}
输出结果:0
new? 去申请数组
int main()
{
int* p = new int[2];
for (int i = 0; i < 2; i++)
{
cout << p[i] << endl;
}
system("pause");
return 0;
}
输出结果:
-842150451
-842150451
数组的申请和数据大同小异,唯一值得注意的一点就是数组必须初始化也就是:
int* p = new int[2];
得把上行代码改为:
int* p = new int[2](); 切记 数组的申请括号里面不能写值
切记 数组的申请括号里面不能写值
2是数组元素个数 切记 数组的申请括号里面不能写值
这样数组结构都是0了
然后就是new完之后的空间释放了
很简单:
//释放数据的话
delete p; //p是接收申请空间的指针
//释放数组的话
delete[] p; //p是接收申请空间的指针
//释放数组必须加上[]
以梦为马? ?不负韶华 !!!加油少年!!!
|