簡單地說!Heap存儲全局靜態(tài)變量, Stack存儲局部變量!
創(chuàng)新互聯(lián)長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為隨州企業(yè)提供專業(yè)的網(wǎng)站制作、成都做網(wǎng)站,隨州網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
另外Stack可以用來動態(tài)地分配內(nèi)存塊.這個在C++中用得比較多.C中不建議用庫函數(shù)中帶的動態(tài)分配函數(shù)來分配內(nèi)存塊,很容易產(chǎn)生內(nèi)存泄漏!
stack item s; //棧元素類型要定義成item
s.push(temp); //這樣才可以壓入結(jié)構(gòu)體數(shù)據(jù)
C語言中包含一些標(biāo)準(zhǔn)的庫函數(shù),但是沒有像C++中的STL容器那部分全面的結(jié)構(gòu)和函數(shù)。
在C語言中如果想使用棧,需要自己編寫代碼,如果是簡單的一次性應(yīng)用,可以用數(shù)組模擬棧的功能,如果是在一個大項目中反復(fù)使用,可以自己寫一個stack的庫函數(shù)。
自定義的庫函數(shù)中,至少應(yīng)該包含初始化、銷毀、入棧、出棧、取棧頂元素、判斷棧是否為空等操作。