連云港400電話辦理【連云港網(wǎng)站公司】連云港百度優(yōu)化、連云港域名注冊(cè)、連云港網(wǎng)店美工、連云港微信公眾號(hào)托管
淮安位于江蘇省中北部,江淮平原東部。地處長(zhǎng)江三角洲地區(qū),[1] 是蘇北重要中心城市網(wǎng)站優(yōu)化, [2] 南京都市圈緊密圈層城市,淮河生態(tài)經(jīng)濟(jì)帶首提首推城市 [3] ,坐落于古淮河與京杭大運(yùn)河交點(diǎn),處在中國(guó)南北分界線“秦嶺-淮河”線上,擁有中國(guó)第四大淡水湖洪澤湖,是全國(guó)文明城市 [4] 、國(guó)家歷史文化名城、國(guó)家衛(wèi)生城市、國(guó)家園林城市、國(guó)家環(huán)境保護(hù)模范城市、國(guó)家低碳試點(diǎn)城市、中國(guó)優(yōu)秀旅游城市。為淮揚(yáng)菜的主要發(fā)源地之一,是江淮流域古文化發(fā)源地之一。
淮安有2200多年建城史。秦時(shí)置縣,境內(nèi)有著名的“青蓮崗文化”遺址。曾是漕運(yùn)樞紐、鹽運(yùn)要沖,駐有漕運(yùn)總督府、江南河道總督府。歷史上與蘇州、杭州、揚(yáng)州并稱運(yùn)河沿線的“四大都市”,曾經(jīng)淮安“因運(yùn)而興、因運(yùn)而盛” [5] ,有“中國(guó)運(yùn)河之都”的美譽(yù)。中國(guó)大運(yùn)河淮安段入選世界遺產(chǎn)名錄。淮安地處江蘇省長(zhǎng)江以北的核心地區(qū),鄰江近海,為南下北上的交通要道,區(qū)位優(yōu)勢(shì)獨(dú)特。是江蘇省的重要交通樞紐,也是長(zhǎng)江三角洲北部地區(qū)的區(qū)域交通樞紐。
淮安人杰地靈,是一代偉人周恩來總理的故鄉(xiāng)。 [6] 歷史上誕生過大軍事家韓信、漢賦大家枚乘、巾幗英雄梁紅玉、《西游記》作者吳承恩、民族英雄關(guān)天培、《老殘游記》作者劉鶚等。 [7]
淮安有著名的紅色旅游景區(qū)周恩來故里景區(qū)、劉老莊八十二烈士陵園、黃花塘新四軍軍部紀(jì)念館、蘇皖邊區(qū)政府舊址紀(jì)念館等,生態(tài)旅游景區(qū)古淮河文化生態(tài)景區(qū)、里運(yùn)河文化長(zhǎng)廊、洪澤湖古堰景區(qū)、第一山國(guó)家森林公園、清晏園、金湖水上森林公園等。
內(nèi)存分配如圖2-9所示。
圖2-9:調(diào)用free后給指針賦值NULL
這種技術(shù)的目的是解決迷途指針類問題。不過,花時(shí)間處理造成這類問題的條件要比粗暴地用空指針一刀切好,更何況除了初始化的情況網(wǎng)站優(yōu)化,都不能將NULL賦給指針。
重復(fù)釋放
重復(fù)釋放是指兩次釋放同一塊內(nèi)存。下面是一個(gè)簡(jiǎn)單的例子:
int?*pi?=?(int*)?malloc(sizeof(int));*pi?=?5;free(pi);...free(pi);復(fù)制代碼
調(diào)用第二個(gè)free函數(shù)會(huì)導(dǎo)致運(yùn)行時(shí)異常。另一個(gè)例子不那么明顯,涉及指向同一塊內(nèi)存的兩個(gè)指針。如下所示,如果我們?cè)噲D第二次釋放同一塊內(nèi)存會(huì)發(fā)生同樣的運(yùn)行時(shí)異常。
p1?=?(int*)?malloc(sizeof(int));int?*p2?=?p1;free(p1);...free(p2);復(fù)制代碼
內(nèi)存分配如圖2-10所示。
圖2-10:重復(fù)釋放
注意兩個(gè)指針引用同一個(gè)地址稱為別名。
不幸的是,堆管理器很難判斷一個(gè)塊是否已經(jīng)被釋放,因此它們不會(huì)試圖去檢測(cè)是否兩次釋放了同一塊內(nèi)存。這通常會(huì)導(dǎo)致堆損壞和程序終止,即使程序沒有終止,它意味著程序邏輯可能存在問題,同一塊內(nèi)存沒有理由釋放兩次。
有人建議free函數(shù)應(yīng)該在返回時(shí)將NULL或其他某個(gè)特殊值賦給自身的參數(shù)。但指針是傳值的,因此free函數(shù)無法顯式地給它賦值NULL。
堆和系統(tǒng)內(nèi)存
堆一般利用操作系統(tǒng)的功能來管理內(nèi)存。堆的大小可能在程序創(chuàng)建后就固定不變了,也可能可以增長(zhǎng)。不過堆管理器不一定會(huì)在調(diào)用free函數(shù)時(shí)將內(nèi)存返還給操作系統(tǒng)。釋放的內(nèi)存只是可供應(yīng)用程序后續(xù)使用。所以,如果程序先分配內(nèi)存然后釋放,從操作系統(tǒng)的角度看,釋放的內(nèi)存通常不會(huì)反映在應(yīng)用程序的內(nèi)存使用上。
程序結(jié)束前釋放內(nèi)存
操作系統(tǒng)負(fù)責(zé)維護(hù)應(yīng)用程序的資源,包括內(nèi)存。當(dāng)應(yīng)用程序終止時(shí),操作系統(tǒng)要負(fù)責(zé)重新分配這塊內(nèi)存以便別的應(yīng)用程序使用。已終止的應(yīng)用程序的內(nèi)存狀態(tài)不管是否損壞都無關(guān)緊要,事實(shí)上,內(nèi)存損壞可能正是應(yīng)用程序終止的原因。異常終止的程序可能無法做清理工作,因此沒有理由在程序終止之前釋放分配的內(nèi)存。
話雖如此,可能又有一些原因要求我們?cè)诔绦蚪K止前釋放內(nèi)存。盡責(zé)的程序員可能會(huì)把釋放內(nèi)存當(dāng)成質(zhì)量指標(biāo)。即使應(yīng)用程序正在終止,不再使用內(nèi)存后將其釋放總歸是好習(xí)慣。如果用工具來檢測(cè)內(nèi)存泄漏或是類似問題,那么釋放內(nèi)存會(huì)讓這類工具的輸出是干凈的。在有些相對(duì)簡(jiǎn)單的操作系統(tǒng)上,操作系統(tǒng)本身可能不會(huì)自動(dòng)回收內(nèi)存,而是需要程序在終止前回收內(nèi)存。還有,新版的應(yīng)用程序可能會(huì)在程序末尾增加代碼,如果之前的內(nèi)存沒有釋放就可能出問題。
因此,確保程序終止前釋放所有內(nèi)存:
是否要在程序終止前釋放內(nèi)存取決于具體的應(yīng)用程序。
迷途指針
如果內(nèi)存已經(jīng)釋放,而指針還在引用原始內(nèi)存,這樣的指針就稱為迷途指針。迷途指針沒有指向有效對(duì)象,有時(shí)候也稱為過早釋放。
使用迷途指針會(huì)造成一系列問題,包括:
連云港400電話辦理【連云港網(wǎng)站公司】連云港百度優(yōu)化、連云港域名注冊(cè)、連云港網(wǎng)店美工、連云港微信公眾號(hào)托管
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。