3 回答

TA貢獻(xiàn)1818條經(jīng)驗 獲得超11個贊
class hEntry{
piblic :
int priority;
String data;
};
class Heap{
public:
void deletMin();
private:
hEntry* hArray;
int numEntries;
}

TA貢獻(xiàn)1826條經(jīng)驗 獲得超6個贊
我們說的堆(heap) 是程序員申請的內(nèi)存空間,在C/C++中,你可以理解為:所有非常量的指針空間。和heap對應(yīng)的,還有棧(stack)、靜態(tài)區(qū)(static)、常量區(qū)(const),以及程序代碼區(qū)。這些都是程序運行所需要申請的內(nèi)存空間。
heap堆和其它內(nèi)存區(qū)的主要差別,一個是heap是由程序員申請、釋放和管理的(而不是由系統(tǒng)和程序自動分配和釋放),是動態(tài)的;另外一個就是,其它區(qū)域都是有固定大小的,而heap的大小,僅僅受到內(nèi)存和虛擬內(nèi)存大小的限制,也就是說,理論上你可以申請的堆空間是無限大的。
例子:main() {const char* m = "123";//"123" 常量區(qū),m在棧(指針的本身都在棧,下同)char s[] = "abc"; //常量區(qū)char *p3 = "123456"; //常量區(qū)static int c =0; //全局(靜態(tài))初始化區(qū) char *p1,*p2;p1 = (char *)malloc(10); //分配得來得10字節(jié)的區(qū)域就在堆區(qū)。 p2 = new char[20]; //分配得來得20字節(jié)的區(qū)域就在堆區(qū)。
C語言之所以命名為C,是因為 C語言源自Ken Thompson發(fā)明的B語言,而 B語言則源自BCPL語言。1967年,劍橋大學(xué)的Martin Richards對CPL語言進(jìn)行了簡化,于是產(chǎn)生了BCPL(Basic Combined Programming Language)語言。
C語言是一門通用計算機編程語言,應(yīng)用廣泛。C語言的設(shè)計目標(biāo)是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在許多電腦平臺上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業(yè)平臺。
- 3 回答
- 0 關(guān)注
- 513 瀏覽
添加回答
舉報