reinterpret_cast的使用和delete[] 如何知道数组的大小
来源:互联网 发布:数据审核员是干什么的 编辑:程序博客网 时间:2024/05/17 06:36
int size = 0;
cin >> size;
char* arr = new char[size];
arr[0]='c';
int i = reinterpret_cast<int>(arr);//137000
char c = *reinterpret_cast<char*>(i);//'c'
cout<<"sizeof(arr) is "<<sizeof(arr)<<endl;//4
cout<<"arr size is "<< *reinterpret_cast<int*>(reinterpret_cast<int>(arr) - sizeof(int)*4)<<endl;//size
delete[] arr;
由上面的程序可知在运行时程序在堆上开辟一段空间给arr,并在arr的首地址前面记录下arr数组的大小,这样delete[]就可以知道要释放掉多大的数组。这个工作并不是编译器完成的。
- reinterpret_cast的使用和delete[] 如何知道数组的大小
- C++ delete[] 是如何知道数组大小的?
- 【探讨】C++ delete[] 是如何知道数组大小的
- static_cast和reinterpret_cast的使用
- static_cast和reinterpret_cast的使用
- c++如何定义不知道大小的数组
- 【Q&A】delete (free)如何知道被删除的数组的元组个数?
- c++ delete[]:怎么知道需要释放的空间大小
- delete [] 时如何知道数组长度
- 编译器delete [] 时如何知道数组长度
- C++中一维,二维动态数组的建立,与内存的释放delete 和 delete[] 的使用
- delete []是如何得知数组个数的
- delete []是如何得知数组个数的
- delete []是如何得知数组个数的
- delete []是如何得知数组个数的
- delete []是如何得知数组个数的
- static_cast、dynamic_cast reinterpret_cast和const_cast的区别和使用
- 数组的大小和长度
- 那些属于神的英文单词
- MFC简单绘图(二)
- 如何打开注册表编辑器
- Event 对象keyCode对照表
- 二十几岁女孩该有的想法
- reinterpret_cast的使用和delete[] 如何知道数组的大小
- 当你扛不住的时候就读一遍
- boost::any
- Linux进程间通信:管道及有名管道 收藏
- 2002/2004-MIS(管理信息系统)OA-Java/PB/.Net
- 插件的技术原理
- 连接池的管理
- SQL安装图解MySQL安装图解MySQL安装图解
- 第一个项目:通信软件系统