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

正文內(nèi)容

c++內(nèi)存管理詳解(doc27)-經(jīng)營管理-全文預(yù)覽

2025-09-11 15:58 上一頁面

下一頁面
  

【正文】 ,以及一個能完成清理與釋放內(nèi)存工作的運(yùn)算符 delete。它們都可用于申請動態(tài)內(nèi)存和釋放內(nèi)存。 // 注意 a 的生命期 } pFunc()。 void Test(void) 中國最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) { A *p。 ( 2)指針 p 被 free 或者 delete 之后,沒有置為 NULL, 讓人誤以為 p是個合法的指針。任何指針變量剛被創(chuàng)建時不會自動成為NULL 指針,它的缺省值是隨機(jī)的,它會亂指一氣。 杜絕“野指針” “ 野指針”不是 NULL 指針,是指向“垃圾”內(nèi)存的指針。 中國最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) cout str endl。 如果把示例 改寫成示例 ,會怎么樣? char *GetString2(void) { char *p = hello world。 // 編譯器將提出警告 } void Test4(void) { char *str = NULL。 } 示例 用函數(shù)返回值來傳遞動態(tài)內(nèi)存 用函數(shù)返回值來傳遞動態(tài)內(nèi)存這種方法雖然好用,但是常常有人把 return語句用錯了。 中國最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) str = GetMemory3(100)。這種方法更加簡單,見示例 。str,而不是 str strcpy(str, hello)。 } void Test2(void) { char *str = NULL。所以函數(shù) GetMemory 并不能輸出任何東西。編譯器總是要為函數(shù)的每個參數(shù)制作臨時副本,指 針參數(shù) p 的副本是 _p,編譯器使 _p = p。 } void Test(void) { char *str = NULL。 // 12 字節(jié) cout sizeof(p) endl。 示例 733( b)中,不論數(shù)組 a 的容量是多少, sizeof(a)始終等于sizeof(char *)。指針 p 指向a,但是 sizeof(p)的值卻是 4。 strcpy(p,a)。 strcpy(b, a)。要想復(fù)制 a 的內(nèi)容,可以先用庫函數(shù) malloc 為 p 申請一塊容量為strlen(a)+1個字符的內(nèi)存,再用 strcpy 進(jìn)行字符串復(fù)制。示例 732 中,若想把數(shù)組 a 的內(nèi)容復(fù)制給數(shù)組 b,不能用語句 b = a ,否則將產(chǎn)生編譯錯誤。 char *p = “ world” 。從語法上看,編譯器并不覺得語句 p[0]= ‘X’ 有什么不妥,但是該語句企圖修改常量字符串的內(nèi)容而導(dǎo)致運(yùn)行錯誤。 下面以字符串為例比較指針與數(shù)組的 特性。 數(shù)組要么在靜態(tài)存儲區(qū)被創(chuàng)建(如全局?jǐn)?shù)組),要么在棧上被創(chuàng)建。 【規(guī)則 3】避免數(shù)組或指針的下標(biāo)越界,特別要當(dāng)心發(fā)生“多 1” 或者“少 1” 操作。 中國最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) 【規(guī)則 1】用 malloc 或 new 申請內(nèi)存之后,應(yīng)該立即檢查指針值是否為NULL。 有三種情況: ( 1)程序中的對象調(diào)用關(guān)系過于復(fù)雜,實(shí)在難以搞清楚某個對象究竟是否已經(jīng)釋放了內(nèi)存,此時應(yīng)該重新設(shè)計數(shù)據(jù)結(jié)構(gòu),從根本上解決對象管理的混亂局面。剛開始時系統(tǒng)的內(nèi)存充足,你看不到錯誤。 中國最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) 例如在使用數(shù)組時經(jīng)常發(fā)生下標(biāo)“多 1” 或者“少 1” 的操作。 犯這種錯誤主要有兩個起因:一是沒有初 始化的觀念;二是誤以為內(nèi)存的缺省初值全為零,導(dǎo)致引用初值錯誤(例如數(shù)組)。常用解決辦法是,在使用內(nèi)存之前檢查指針是否為 NULL。而這些錯誤大多沒有明顯的癥狀,時隱時現(xiàn),增加了改錯的難度。程序在運(yùn)行的時候用 malloc或 new 申請任意多少的內(nèi)存,程序員自己負(fù)責(zé)在何時用 free 或 delete 釋放內(nèi)存。 ( 2)在棧上創(chuàng)建。本文的內(nèi)容比一般教科書的要深入得多,讀者需細(xì)心閱讀,做到真正地通曉內(nèi)存管理。如果不想觸雷,唯一的解決辦法就是發(fā)現(xiàn)所有潛伏的地雷并且排除它們,躲是躲不了的。例如全局變量, static 變量。 ( 3) 從堆上分配,亦稱動態(tài)內(nèi)存分配。編譯器不能自動發(fā)現(xiàn)這些錯誤,通常是 中國最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) 在程序運(yùn)行時才能捕捉到。 編程新手常犯這種錯誤,因?yàn)樗麄儧]有意識到內(nèi)存分配會不成功。 * 內(nèi)存分配雖然成功,但是尚未初始化就引用它。 * 內(nèi)存分配成功并且已經(jīng)初始化,但操作越過了內(nèi)存的邊界。 含有這種錯誤的函數(shù)每被調(diào)用一次就丟失 一塊內(nèi)存。 * 釋放了內(nèi)存卻繼續(xù)使用它。導(dǎo)致產(chǎn)生“野指針”。防止將未被初始化的內(nèi)存作為右值使用。 指針與數(shù)組的對比 C++/C 程序中,指針和數(shù)組在不少地方可以相互替換著用,讓人產(chǎn)生一種錯覺,以為兩者是等價的。指針遠(yuǎn)比數(shù)組靈活,但也更危險。指針 p 指向常量字符串“ world” (位于靜態(tài)存儲區(qū),內(nèi)容為 world),常量字符串的內(nèi)容是不可以被修改的。 cout a endl。 示例 修改數(shù)組和指針的內(nèi)容 內(nèi)容復(fù)制與比較 中國最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) 不能
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1