C++的内存管理是怎样的
生活随笔
收集整理的這篇文章主要介紹了
C++的内存管理是怎样的
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
虛擬內(nèi)存分布
- 虛擬內(nèi)存管理
- 代碼段:
- 數(shù)據(jù)段
- bss 段
- 堆區(qū)
- 映射區(qū)
- 棧:使用棧空間存儲(chǔ)函數(shù)的返回地址、參數(shù)、局部變量、返回值
虛擬內(nèi)存管理
在 C++中,虛擬內(nèi)存分為代碼段、數(shù)據(jù)段、BSS 段、堆區(qū)、文件映射區(qū)以及棧區(qū)六部分。
代碼段:
包括只讀存儲(chǔ)區(qū)和文本區(qū),其中只讀存儲(chǔ)區(qū)存儲(chǔ)字符串常量,文本區(qū)存儲(chǔ)程序的機(jī)
器代碼。
數(shù)據(jù)段
存儲(chǔ)程序中已初始化的全局變量和靜態(tài)變量
bss 段
存儲(chǔ)未初始化的全局變量和靜態(tài)變量(局部+全局),以及所有被初始化為 0 的全
局變量和靜態(tài)變量。
堆區(qū)
調(diào)用 new/malloc 函數(shù)時(shí)在堆區(qū)動(dòng)態(tài)分配內(nèi)存,同時(shí)需要調(diào)用 delete/free 來(lái)手動(dòng)釋
放申請(qǐng)的內(nèi)存。
映射區(qū)
存儲(chǔ)動(dòng)態(tài)鏈接庫(kù)以及調(diào)用 mmap 函數(shù)進(jìn)行的文件映射
棧:使用棧空間存儲(chǔ)函數(shù)的返回地址、參數(shù)、局部變量、返回值
總結(jié)
以上是生活随笔為你收集整理的C++的内存管理是怎样的的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C++什么是内存泄漏
- 下一篇: 信用卡分期费率是多少