C++内存分配
来源:互联网 发布:恒腾网络 福利待遇 编辑:程序博客网 时间:2024/04/30 08:03
存储空间管理是 C++ 中的重要内容。很多错误也都和内存管理有关。
std::cout << "This is a string" << std::endl;
静态内存分配 (static)
所谓静态(static),是说在编译的时候已经将内存分配好了。
每个程序都有一个对应的数据区。编译器把静态变量就存放在这个数据区中的固定位置。因而静态数据的存储地址在程序运行过程中是固定不变的。除了用 "static" 显示声明的变量,常量字符串(比如上面例子中的 "This is a string")也可以看作是匿名的静态变量。
TODO
动态内存分配
new
new 在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。
常见的形式如 new Object();。
有时我们会看到下面”奇怪“的用法
class A;
A a, b;
new (&a) b;
// 相当于 a->A::A(b);
上面的用法其实是省略了空间分配的步骤,在指定地址上通过拷贝构造函数初始化一个对象。
delete
delete 负责释放 new 分配的内存。
- c/C++内存分配
- C内存分配
- C语言内存分配
- C/C++内存分配
- C/C++内存分配
- c内存分配
- C/C++内存分配
- C程序内存分配
- c 内存分配
- C语言内存分配
- C内存分配
- C的内存分配
- c语言内存分配
- c内存分配
- C语言-内存分配
- C语言内存分配
- c程序内存分配
- C/C++内存分配
- !!ECMA-262 核心
- 栈区,堆区,全局区,文字常量区,程序代码区 详解
- 二、Linux下的vi编辑器
- 类与动态内存分配中布局new操作符
- 卸载chrome后无法安装新的chrome
- C++内存分配
- 深入C++的new
- mysql配置文件my.ini的分析
- 宏
- Sizeof与Strlen的区别与联系
- 关于css hack(参考百度百科)
- VS2008下用C++ OLE技术高效处理Excel数据-总结
- 从小函数实现看应聘者的编程素质
- 如何将对象转换成json格式,如何将json格式数据转换成js对象