C语言中,如何选择最合适的管理数据内存的方式?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1721个文字,预计阅读时间需要7分钟。
《C++内存管理:四种管理数据内存的方式+自动存储+静态存储+动态存储+线程存储+栈、堆、内存泄漏+内存分配方法》C++中有三种管理数据内存的方式:自动存储、静态存储和动态存储。
目录
- C++的4种管理数据内存的方式
- 自动存储
- 静态存储
- 动态存储
- 线程存储
- 栈、堆、内存泄漏
根据用于分配内存的方法,C++中有3中管理数据内存的方式:自动存储、静态存储和动态存储(有时也叫做自由存储空间或堆)。在存在时间的长短方面,以这三种方式分配的数据对象各不相同。下面简要介绍这三种类型。
注:C++11中新增了第四种类型——线程存储
C++的4种管理数据内存的方式
自动存储
在函数内部定义的常规变量使用自动存储空间,被称为自动变量(automatic variable),这意味着它们在所属的函数被调用时自动产生,在该函数结束时消亡。例如,当在一个自定义的函数getname()中定义了一个temp数组时,temp数组仅当getname()函数活动时存在。当成许控制权回到main()时,temp使用的内存将自动被释放。如果getname()返回temp的地址,则main()中的name指针指向的内存将很快得到重新使用。这就是在getname()中使用new的原因之一。
实际上,自动变量是一个局部变量,其作用域为包含它的代码块。代码块是被包含在花括号中的一段代码。
本文共计1721个文字,预计阅读时间需要7分钟。
《C++内存管理:四种管理数据内存的方式+自动存储+静态存储+动态存储+线程存储+栈、堆、内存泄漏+内存分配方法》C++中有三种管理数据内存的方式:自动存储、静态存储和动态存储。
目录
- C++的4种管理数据内存的方式
- 自动存储
- 静态存储
- 动态存储
- 线程存储
- 栈、堆、内存泄漏
根据用于分配内存的方法,C++中有3中管理数据内存的方式:自动存储、静态存储和动态存储(有时也叫做自由存储空间或堆)。在存在时间的长短方面,以这三种方式分配的数据对象各不相同。下面简要介绍这三种类型。
注:C++11中新增了第四种类型——线程存储
C++的4种管理数据内存的方式
自动存储
在函数内部定义的常规变量使用自动存储空间,被称为自动变量(automatic variable),这意味着它们在所属的函数被调用时自动产生,在该函数结束时消亡。例如,当在一个自定义的函数getname()中定义了一个temp数组时,temp数组仅当getname()函数活动时存在。当成许控制权回到main()时,temp使用的内存将自动被释放。如果getname()返回temp的地址,则main()中的name指针指向的内存将很快得到重新使用。这就是在getname()中使用new的原因之一。
实际上,自动变量是一个局部变量,其作用域为包含它的代码块。代码块是被包含在花括号中的一段代码。

