C++关于new动态分配内存的问题
2013-03-03 20:48
190 查看
看到一些关于new动态分配内存的讨论,突然感觉自己也迷迷糊糊,特记下,以备查阅。
1、什么时候用new,为什么要用new?
这个问题光有语言的知识是很难理解的,这样说吧。程序在内存里运行有个单位,这个单位叫做进程,进程呢,有三个部分,分别叫做静态储存区,栈,堆。
静态储存区呢,主要放的是全局变量和静态变量(还包括字符串常量等等)。他们的生存期是涵盖整个程序的。
栈呢,放的是局部变量,他的生存期就是他所处的语句块(也就是离他最近的一对{}),离开了他的生存期他就失效了,你所谓的一般声明形式就是这种情况
最后,由于栈的空间是非常有限的,又是完全归系统管理的,所以当不够大,或者需要自己管理内存的时候。你就得使用堆上的空间所以你要用new申请,用delete或者delete[]归还,在进程的范围内,该内存的生存期就完全由你操作了;
1、什么时候用new,为什么要用new?
这个问题光有语言的知识是很难理解的,这样说吧。程序在内存里运行有个单位,这个单位叫做进程,进程呢,有三个部分,分别叫做静态储存区,栈,堆。
静态储存区呢,主要放的是全局变量和静态变量(还包括字符串常量等等)。他们的生存期是涵盖整个程序的。
栈呢,放的是局部变量,他的生存期就是他所处的语句块(也就是离他最近的一对{}),离开了他的生存期他就失效了,你所谓的一般声明形式就是这种情况
最后,由于栈的空间是非常有限的,又是完全归系统管理的,所以当不够大,或者需要自己管理内存的时候。你就得使用堆上的空间所以你要用new申请,用delete或者delete[]归还,在进程的范围内,该内存的生存期就完全由你操作了;
相关文章推荐
- C++关于new动态分配内存的问题
- 关于C++的new是否会对内存初始化的问题
- 关于c++中new和delete的长度问题
- 关于C++的new是否会对内存初始化的问题
- 关于C++的new是否会对内存初始化的问题
- 关于C++中报Error:new types may not be defined in a return type问题
- 关于C++的new是否会对内存初始化的问题
- c++的getline一个关于缓冲区的一个小问题
- 关于c++提取符号“>>”的重载问题
- 一个关于用Array.newInstance方式创建多维数组的问题
- JS关于ie浏览器new Date传参报错的问题的解决
- C++动态分配内存(new)和撤销内存(delete)
- 关于rand()的函数: 请问一个关于C++的问题...
- 关于C++输出流cout的执行顺序问题
- 关于C++中的临时对象问题
- 个人研究《数据结构与算法分析-C++描述》Vector实现的问题,new与初始化
- 关于c++/c#/java 多线程绘图问题说明
- 关于C++中接口的问题(转自百度)
- c++调用python函数时,使用PyArray_SimpleNewFromData(nd, dims, typenum, data)函数时出现内存错误的问题
- 关于在idea中建立scala工程无法new scala文件的问题