最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解C/C++內(nèi)存區(qū)域劃分(簡而易懂)

 更新時(shí)間:2021年06月26日 10:27:13   作者:小一!  
C/C++中,內(nèi)存主要分為、堆、棧、全局/靜態(tài)存儲區(qū)和常量存儲區(qū)。本文重點(diǎn)給大家介紹C/C++內(nèi)存區(qū)域劃分的相關(guān)知識,需要的朋友參考下吧

C語言在內(nèi)存中一共分為如下幾個(gè)區(qū)域,分別是:

1. 內(nèi)存棧區(qū): 存放局部變量名;
2. 內(nèi)存堆區(qū): 存放new或者malloc出來的對象;
3. 常數(shù)區(qū): 存放局部變量或者全局變量的值;
4. 靜態(tài)區(qū): 用于存放全局變量或者靜態(tài)變量;
5. 代碼區(qū):二進(jìn)制代碼。
知道如上一些內(nèi)存分配機(jī)制,有助于我們理解指針的概念。

C/C++不提供垃圾回收機(jī)制,因此需要對堆中的數(shù)據(jù)進(jìn)行及時(shí)銷毀,防止內(nèi)存泄漏,使用free和delete銷毀new和malloc申請的堆內(nèi)存,而棧內(nèi)存是動態(tài)釋放。

C/C++內(nèi)存區(qū)域劃分詳解

C/C++內(nèi)存分布

在這里插入圖片描述

C/C++中,內(nèi)存主要分為、堆、棧、全局/靜態(tài)存儲區(qū)和常量存儲區(qū)。

棧:棧又叫堆棧,就是那些由編譯器在需要的時(shí)候分配,在不需要的時(shí)候自動清除的變量的存儲區(qū)。里面的變量通常是局部變量、函數(shù)參數(shù)等,是向下增長的。所謂向下生長的就是,先調(diào)用的棧幀的地址比后調(diào)用的地址大,棧一般大小有幾個(gè)M左右。

#include<iostream>
using namespace std;

void f2()
{
	int b = 0;
	cout << "b:" << &b << endl;
}
void f1()
{
	int a = 0;
	cout <<"a:" <<&a << endl;

	f2();
}
int main()
{
	f1();
	return 0;
}

在這里插入圖片描述

堆:就是那些由new/malloc分配的內(nèi)存塊,他們的釋放編譯器不去管,由我們的應(yīng)用程序去控制,一般一個(gè)new/malloc就要對應(yīng)一個(gè)delete/free,由程序員主動釋放。堆是可以上增長的.意思是先建立的堆的地址小于后建立的堆的地址。

#include<iostream>
using namespace std;

int main()
{
	void* p1 = malloc(10);
	void* p2 = malloc(10);

	cout << p1 << endl;
	cout << p2 << endl;

	return 0;
}

在這里插入圖片描述

數(shù)據(jù)段:存儲全局?jǐn)?shù)據(jù)和靜態(tài)數(shù)據(jù)。
代碼段:可執(zhí)行的代碼/只讀常量

知道了內(nèi)存分布,下面就來做題吧,考驗(yàn)知識的時(shí)候到了,看看會做幾題吧

在這里插入圖片描述

是不是前幾題還得心應(yīng)手,后面就有點(diǎn)懵了

在這里插入圖片描述
在這里插入圖片描述

棧和堆的區(qū)別:

棧:由編譯器自動分配并且釋放,一般存儲函數(shù)的參數(shù)局部變量等
堆:由程序員分配釋放,若程不釋放則系統(tǒng)釋放

1、申請內(nèi)存方式
棧:由系統(tǒng)自動分配,如變量的聲明的同時(shí)會開辟空間,(int a; 開辟4個(gè)字節(jié)的空間)(靜態(tài)指定)

堆:由程序員申請,需要制定大?。▌討B(tài)分配)
2、系統(tǒng)響應(yīng)的不同

棧:只要剩余空間大于申請內(nèi)存,系統(tǒng)就會提供,否則會棧溢出

堆:便歷空閑地址鏈表,找到符合要求的,就刪除該地址分配給程序,內(nèi)存的首地址記錄分配的大小,(方便delete)多余的內(nèi)存回收

3、空間大小不同
棧:連續(xù)的,編譯時(shí)就確定的常數(shù)
堆:不連續(xù),他的上限決定于系統(tǒng)中有效的虛擬內(nèi)存
4、執(zhí)行效率的不同
棧:由系統(tǒng)分配,速度快
堆:程序員分配,速度慢,容易產(chǎn)生內(nèi)存碎片,不過用起來方便

到此這篇關(guān)于C/C++內(nèi)存區(qū)域劃分詳解的文章就介紹到這了,更多相關(guān)C++內(nèi)存劃分內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C/C++: Inline function, calloc 對比 malloc

    C/C++: Inline function, calloc 對比 malloc

    以下是對c/c++中的malloc函數(shù)與calloc函數(shù)的區(qū)別以及它們之間的聯(lián)系進(jìn)行了介紹,需要的朋友可以過來參考下
    2016-07-07
  • C語言實(shí)現(xiàn)的循環(huán)單鏈表功能示例

    C語言實(shí)現(xiàn)的循環(huán)單鏈表功能示例

    這篇文章主要介紹了C語言實(shí)現(xiàn)的循環(huán)單鏈表功能,結(jié)合實(shí)例形式分析了基于C語言實(shí)現(xiàn)的循環(huán)單鏈表定義、創(chuàng)建、添加、刪除、打印、排序等相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • C++細(xì)講深淺拷貝與初始化列表如何操作

    C++細(xì)講深淺拷貝與初始化列表如何操作

    C++對象特性里的拷貝構(gòu)造函數(shù)有更深入的含義,而且面試曾經(jīng)問過關(guān)于拷貝的析構(gòu)問題,那么今天就好好解析一下深淺拷貝的問題;還有初始化列表的形式,這個(gè)在給對象屬性初始化的時(shí)候非常方便,建議大家熟練掌握,話不多說,開始正文
    2022-05-05
  • OpenMP深入剖析reduction子句教程

    OpenMP深入剖析reduction子句教程

    這篇文章主要為大家介紹了OpenMP深入剖析reduction子句教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • C++ boost::asio編程-域名解析詳細(xì)介紹

    C++ boost::asio編程-域名解析詳細(xì)介紹

    這篇文章主要介紹了C++ boost::asio編程-域名解析詳細(xì)介紹的相關(guān)資料,這里附有實(shí)例代碼,幫助大家學(xué)習(xí)理解這部分知識,需要的朋友可以參考下
    2016-11-11
  • C語言的分支和循環(huán)語句你真的了解嗎

    C語言的分支和循環(huán)語句你真的了解嗎

    這篇文章主要為大家詳細(xì)介紹了C語言的分支和循環(huán)語句,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 使用C/C++讀取matlab中.mat格式數(shù)據(jù)的操作

    使用C/C++讀取matlab中.mat格式數(shù)據(jù)的操作

    這篇文章給大家介紹了使用C/C++讀取matlab中.mat格式數(shù)據(jù)的操作,文中通過圖文結(jié)合的方式介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • C++中的string類(C++字符串)入門完全攻略

    C++中的string類(C++字符串)入門完全攻略

    這篇文章主要給大家介紹了關(guān)于C++中string類(C++字符串)入門的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 總結(jié)c++性能優(yōu)化策略

    總結(jié)c++性能優(yōu)化策略

    在本篇文章中小編給大家總結(jié)了關(guān)于C++的性能優(yōu)化策略的相關(guān)知識點(diǎn),對此有興趣的朋友可以參考學(xué)習(xí)下。
    2018-03-03
  • C?語言中布爾值的用法實(shí)戰(zhàn)案例

    C?語言中布爾值的用法實(shí)戰(zhàn)案例

    這篇文章主要為大家介紹了C語言中布爾值的用法實(shí)戰(zhàn)案例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12

最新評論

高要市| 武义县| 黄浦区| 达孜县| 洪泽县| 南昌市| 寻乌县| 万源市| 仁怀市| 繁昌县| 西青区| 华亭县| 农安县| 竹北市| 杂多县| 吉水县| 东乡| 田阳县| 渝中区| 筠连县| 汝南县| 临猗县| 垫江县| 苍南县| 安顺市| 虎林市| 宁明县| 专栏| 即墨市| 遵义县| 张北县| 奉新县| 米林县| 界首市| 县级市| 怀安县| 建瓯市| 海丰县| 湾仔区| 常州市| 卢氏县|