用new来为指针分配内存
来源:互联网 发布:php 超链接传递变量 编辑:程序博客网 时间:2024/04/29 06:04
//用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;//此处再次为指针指向分配一个新的内存地址,但没有为这个内存地址赋值
cout<<*pt<<endl;//所以这里还是输出0;
cout<<&*pt<<endl;
*pt=123456;//这里再次为指针新指向的内存块写入一个值,
cout<<*pt<<endl;//所以这里将输出12346;
delete pt;//又一次的释放指针所指向的内存块。 此时它指向的值123465也跟着丢失。
*pt=789;//这次不为它的指向创建一个内存地址,而是直接给它赋值
cout<<*pt<<endl;//这里输出了正确的值789,
//但我个人认为因为我没有为它的指向创建一个内存地址,我觉得指针会随便找一个地址来存789这个值,
//因此它是不安全的,不知道这样对不对?
cout<<&*pt<<endl;//此处输入指针指向的内存地址,但奇怪的是地址竟然和第一次创建的一样,难道它不是随便找一个地址来存?
return 0;
}
- 用new来为指针分配内存
- 为多级指针分配内存
- 类函数指针 分配内存 new()
- 为指针分配的内存太小
- new分配内存
- C++内存分配new
- C++ new内存分配
- new内存分配失败
- java new 内存分配
- 将一个字符串逆序输出 & 为指针分配内存
- 内存分配及指针
- 指针以及内存分配
- 指针与内存分配
- 指针内存分配
- 指针内存分配
- 递归 内存分配 指针
- 指针以及内存分配
- 指针与内存分配
- 感想...
- Windows系统对POSIX的支持
- 虚拟键盘(软键盘)设计要点
- 累死人的SAP优化!
- HashMap解析
- 用new来为指针分配内存
- 《JAVA模式》学习心得与体会——之软件设计原则
- 游戏是如何做出来的(三)
- 访问者模式:(复习笔记)
- federer string
- 数据验证(模拟检测用户名是否存在)
- C#项目打包,并自动附加数据库
- 配置IP,MAC和DNS要修改的文件
- 闲来无事,写篇日志