保留現(xiàn)場
創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)德化,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
就是字面的意思,保留現(xiàn)場
比如,你要到某地去,走在路上時(shí),看到路邊有個(gè)屋子,你想去看一下,但是又怕迷路了,那么只好記住你現(xiàn)在所在的位置(也就是保留現(xiàn)場)。然后到屋子參觀一番后,離開屋子時(shí),只要返回到之前所記的位置就行了。
函數(shù)調(diào)用時(shí),具體要保留那些數(shù)據(jù)呢,一般來說不同編譯器不同的調(diào)用方法要保留的數(shù)據(jù)都會不同。那些寄存器的值一般都會保留的,保留的數(shù)據(jù)一般是放在程序的堆棧中。
其實(shí)函數(shù)的返回也就是恢復(fù)現(xiàn)場
未初始化的靜態(tài)局部變量存放BSS段中,初始化了的靜態(tài)局部變量存放于全局區(qū),靜態(tài)全局變量存放于全局區(qū),,函數(shù)調(diào)用完了,釋放自己使用的棧內(nèi)存。如果函數(shù)中有改變?nèi)謪^(qū)或BSS段的變量,函數(shù)調(diào)用完后,這些變量的值就是函數(shù)里修改后的值。
嘿嘿,大多數(shù)教科書都是這樣寫的,但以后你寫程序時(shí)也這么寫的話,老板直接扣你一半工資!
因?yàn)檫@種情況會產(chǎn)生野指針。
你可以這樣試下:
首先定義指針并申請內(nèi)存,然后賦值,然后再釋放p所指內(nèi)存,最后切記:釋放了內(nèi)存后一定要加上一句:p = NULL,因?yàn)殡m然p所指內(nèi)存被釋放了,但p還是指向原地址,這樣野指針就產(chǎn)生了,而且這種情況調(diào)試時(shí)很難發(fā)現(xiàn)