c/c++堆棧分布及其設(shè)置方法
一個(gè)由C/C++編譯的程序占用的內(nèi)存分為以下幾個(gè)部分
1、棧區(qū)(stack)— 由編譯器自動(dòng)分配釋放 ,存放函數(shù)的參數(shù)名,局部變量的名等。其操作方式類(lèi)似于數(shù)據(jù)結(jié)構(gòu)中的棧。
2、堆區(qū)(heap)— 由程序員分配釋放, 若程序員不釋放,程序結(jié)束時(shí)可能由OS回收。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類(lèi)似于鏈表。
3、全局區(qū)(靜態(tài)區(qū))(static)—全局變量和靜態(tài)變量的存儲(chǔ)是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域, 未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。程序結(jié)束后由系統(tǒng)釋放。
4、文字常量區(qū)—常量字符串就是放在這里的,程序結(jié)束后由系統(tǒng)釋放 。
5、程序代碼區(qū)— 存放函數(shù)體的二進(jìn)制代碼。
int a = 0;//全局初始化區(qū)
char*p1;//全局未初始化區(qū)
main()
{
intb;//棧
chars[] = "abc";//棧
char*p2;//棧
char*p3 = "123456";//123456\0在常量區(qū),p3在棧上。
static int c =0;//全局(靜態(tài))初始化區(qū)
p1 = (char*)malloc(10);
p2 = (char*)malloc(20);//分配得來(lái)的10和20字節(jié)的區(qū)域就在堆區(qū)。
}
strcpy(p1, "123456"); 123456\0放在常量區(qū),編譯器可能會(huì)將它與p3所指向的”123456"優(yōu)化成一個(gè)地方。
相關(guān)文章
iOS實(shí)現(xiàn)UITableView數(shù)據(jù)為空時(shí)的提示頁(yè)面
最近工作中遇到一個(gè)需求,當(dāng)UITableView數(shù)據(jù)為空的時(shí)候,給出一個(gè)簡(jiǎn)單的提示頁(yè)面,通過(guò)從網(wǎng)上查找解決的方法,發(fā)現(xiàn)了兩種實(shí)現(xiàn)的方法,現(xiàn)在分享給大家,有需要的朋友們可以參考借鑒,下面感興趣的朋友們來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2016-11-11
IOS多線(xiàn)程編程N(yùn)SThread的使用方法
這篇文章主要介紹了IOS多線(xiàn)程編程N(yùn)SThread的使用方法的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家理解使用多線(xiàn)程的方法,需要的朋友可以參考下2017-10-10
Flutter繪制3.4邊形及多邊形漸變動(dòng)畫(huà)實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Flutter繪制3.4邊形之多邊形漸變動(dòng)畫(huà)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
加載帶有手勢(shì)識(shí)別器的XIB文件需注意哪些問(wèn)題
手勢(shì)識(shí)別在iOS上非常重要,手勢(shì)操作移動(dòng)設(shè)備的重要特征,極大的增加了移動(dòng)設(shè)備使用便捷性。通過(guò)本教程給大家介紹加載帶有手勢(shì)識(shí)別器的XIB文件需注意哪些問(wèn)題,需要的朋友可以參考下2015-08-08
iOS 11更新后及iPhone X推出后工程中遇到的問(wèn)題及適配方法
這篇文章主要介紹了iOS 11更新后及iPhone X推出后工程中遇到的問(wèn)題及適配,需要的朋友可以參考下2017-10-10
IOS 靜態(tài)方法與動(dòng)態(tài)方法詳解
這篇文章主要介紹了IOS 靜態(tài)方法與動(dòng)態(tài)方法詳解的相關(guān)資料,需要的朋友可以參考下2017-02-02
iOS應(yīng)用開(kāi)發(fā)中對(duì)UIImage進(jìn)行截取和縮放的方法詳解
這篇文章主要介紹了iOS應(yīng)用開(kāi)發(fā)中對(duì)UIImage進(jìn)行截取和縮放的方法,分別講解了如何截取指定區(qū)域大小的UIImage以及縮放到指定大小和等比縮放的具體操作過(guò)程,需要的朋友可以參考下2016-04-04

