//用new来分配内存
#include<iostream>
using namespace std;
int main()
{
int * pt=new int;//使用new来为指针pt分配一个未命名的内存空间
*pt=1001; //new int 告诉程序,需要适合存储适合int类型数据的内存。new操作符根据数据类型来确定需要多少字节内存来存储。
cout<<"int value = "<<*pt<<" : location = "<<pt<<endl;//输出指针指向的值和指向的内存地址
double * pd=new double;
*pd=100001.0;
cout<<" double value = "<<*pd<<" : location ="<<pd<<endl;
cout<<"size of *pt = "<<sizeof(*pt)<<endl;
cout<<"size of *pd = "<<sizeof(*pd)<<endl;
cout<<"size of pt ="<<sizeof(pt)<<endl;
cout<<"size of pd = "<<sizeof(pd)<<endl;
delete pt;//释放了指针所指向的内存块,但指针本身所在的内存地址不变,
cout<<*pt<<endl;//由于pt指向的的内存块被删除,所以其上的数据也丢失。这里输出0
pt=new int;//此处再次为指针指向分配一个新的内存地址,但

这篇博客探讨了C++中如何使用`new`为指针分配内存,以及`delete`释放内存的过程。通过示例代码展示了`new`为`int`和`double`类型指针分配内存,输出指针值和地址,并讨论了释放内存后指针状态的变化。作者还提到了未分配内存即赋值的潜在风险以及指针地址的意外一致性。
1696

被折叠的 条评论
为什么被折叠?



