freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c內(nèi)存管理詳解(doc27)-經(jīng)營管理(參考版)

2024-08-20 15:58本頁面
  

【正文】 。不會(huì)正確使用指針,肯定算不上是合格的程序員。躲避指針不是辦法,后來我改寫了這個(gè)軟件,代碼量縮小到原先的一半。 一些心得體會(huì) 我認(rèn)識(shí)不少技術(shù)不錯(cuò)的 C++/C 程序員,很少有人能拍拍胸脯說通曉指針與內(nèi)存管理(包括我自己)。 // 正確的用法 delete objects。// 創(chuàng)建 100 個(gè)動(dòng)態(tài)對(duì)象的同時(shí)賦初值 1 在用 delete 釋放對(duì)象數(shù)組時(shí),留意不要丟了符號(hào)‘ []’ 。例如 Obj *objects = new Obj[100]。 delete b。 Obj *b = new Obj(1)。 // 無參數(shù)的構(gòu)造函數(shù) Obj(int x)。如果對(duì)象有多個(gè)構(gòu)造函數(shù),那么 new 的語句也可以有多種形式。 中國最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) 這是因?yàn)?new 內(nèi)置了 sizeof、類型轉(zhuǎn)換和類型安全檢查功能。 new/delete 的 使用要點(diǎn) 運(yùn)算符 new 使用起來要比函數(shù) malloc 簡單得多,例如: int *p1 = (int *)malloc(sizeof(int) * length)。如果 p 是 NULL 指針,那么 free 對(duì) p 無論操作多少次都不會(huì)出問題。 * 函數(shù) free 的原型如下: void free( void * memblock )。 cout sizeof(void *) endl。 cout sizeof(float) endl。 cout sizeof(long) endl。 cout sizeof(int) endl。例如 int 變量在 16 位系統(tǒng)下是 2 個(gè)字節(jié),在 32 位下是 4 個(gè)字節(jié);而 float變量在 16 位系統(tǒng)下是 4 個(gè)字節(jié),在 32 位下也是 4 個(gè)字節(jié)。 * malloc 函數(shù)本身并不識(shí)別要申請(qǐng)的內(nèi)存是什么類型,它只關(guān)心內(nèi)存的總字節(jié)數(shù)。 我們應(yīng)當(dāng)把注意力集中在兩個(gè)要素上:“類型轉(zhuǎn)換”和“ sizeof” 。 中國最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) } } 示例 7 試圖耗盡操作系統(tǒng)的內(nèi)存 malloc/free 的使用要點(diǎn) 函數(shù) malloc 的原型如下: void * malloc(size_t size)。 cout “eat memory” endl。 void main(void) { float *p = NULL。這下可把 Unix 和 Windows 程序員們樂壞了:反正錯(cuò)誤處理程序不起作用,我就不寫了,省了很多麻煩。我只聽到硬盤嘎吱嘎吱地響, Window 98 已經(jīng)累得對(duì)鍵 盤、鼠標(biāo)毫無反應(yīng)。這個(gè)程序會(huì)無休止地運(yùn)行下去,根本不會(huì)終止。對(duì)于 32 位以上的應(yīng)用程序而言,無論怎樣使用 malloc 與 new,幾乎不可能導(dǎo)致“內(nèi)存耗盡”。道理如同:如果不把歹徒擊斃,歹徒在老死之前會(huì)犯下更多的罪。如果發(fā)生“內(nèi)存耗盡”這樣的事情, 一般說來應(yīng)用程序已經(jīng)無藥可救。如果一個(gè)函數(shù)內(nèi)有多處需要申請(qǐng)動(dòng)態(tài)內(nèi)存,那么方式( 1)就顯得力不從心(釋放內(nèi)存很麻煩),應(yīng)該用方式( 2)來處理。詳細(xì)內(nèi)容請(qǐng)參考 C++使用手冊(cè)。 } 中國最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) ? } ( 3)為 new 和 malloc 設(shè)置異常處理函數(shù)。 if(a == NULL) { cout “Memory Exhausted” endl。 } ? } ( 2)判斷指針是否為 NULL,如果是則馬上用 exit(1)終止整個(gè)程序的運(yùn)行。例如: void Func(void) 中國最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) { A *a = new A。通常有三種方式處理“內(nèi)存耗盡”問題。所以 new/delete 必須配對(duì)使用, malloc/free 也一樣。 如果用 free 釋放“ new 創(chuàng)建的動(dòng)態(tài)對(duì)象”,那么該對(duì)象因無法執(zhí)行析構(gòu)函數(shù)而可能導(dǎo)致程序出錯(cuò)。由于內(nèi)部數(shù)據(jù)類型的“對(duì)象”沒有構(gòu)造與析構(gòu)的過程,對(duì)它們而言 malloc/free 和 new/delete是等價(jià)的。函數(shù) UseNewDelete則簡單得多。 // 清除并且釋放內(nèi)存 } 示例 6 用 malloc/free 和 new/delete如何實(shí)現(xiàn)對(duì)象的動(dòng)態(tài)內(nèi)存管理 類 Obj 的函數(shù) Initialize 模擬了構(gòu)造函數(shù)的功能,函數(shù) Destroy 模擬了析構(gòu)函數(shù)的功能。 // 釋放內(nèi)存 } void UseNewDelete(void) { Obj *a = new Obj。 // 初始化 //? aDestroy()。 void UseMallocFree(void) 中國最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) { Obj *a = (obj *)malloc(sizeof(obj))。 } void Destroy(void){ cout “Destroy” endl。 } ~Obj(void){ cout “Destroy” endl。我們先看一看 malloc/free 和 new/delete如何實(shí)現(xiàn)對(duì)象的動(dòng)態(tài)內(nèi)存管理,見示例 6。 因此 C++語言需要一個(gè)能完成動(dòng)態(tài)內(nèi)存分配和初始化工作的運(yùn)算符 ne
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1