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

正文內(nèi)容

c內(nèi)存管理詳解(doc27)-經(jīng)營(yíng)管理-wenkub

2022-08-27 15:58:30 本頁面
 

【正文】 p==a) 比較的不是內(nèi)容而是地址,應(yīng)該用庫函數(shù) strcmp 來比較。應(yīng)該用標(biāo)準(zhǔn)庫函數(shù) strcpy 進(jìn)行復(fù)制。 // 注意 p 指向 常量字符串 p[0] = ‘X’。 char a[] = “hello”。 修改內(nèi)容 示例 31 中,字符數(shù)組 a 的容量是 6 個(gè)字符,其內(nèi)容為 hello。數(shù)組名對(duì)應(yīng)著(而不是指向)一塊內(nèi)存,其地址與容量在生命期內(nèi)保持不變,只有數(shù)組的內(nèi)容可以改變。 【規(guī)則 4】動(dòng)態(tài)內(nèi)存的申請(qǐng)與釋放必須配對(duì),防止內(nèi)存泄漏。防止使用指針值為 NULL 的內(nèi)存。 ( 2)函數(shù)的 return 語句寫錯(cuò)了,注意不要返回指向“棧內(nèi)存”的“指針”或者“引 用”,因?yàn)樵搩?nèi)存在函數(shù)體結(jié)束時(shí)被自動(dòng)銷毀。終有一次程序突然死掉,系統(tǒng)出現(xiàn)提示:內(nèi)存耗盡。特別是在 for 循環(huán)語句中,循環(huán)次數(shù)很容易搞錯(cuò),導(dǎo)致數(shù)組操作越界。內(nèi)存的缺省初值究竟是什么并沒有統(tǒng)一的標(biāo)準(zhǔn),盡管有些時(shí)候?yàn)榱阒?,我們寧可信其無不可信其有。如果指針 p 是函數(shù)的參數(shù),那么在函數(shù)的入口處用 assert(p!=NULL)進(jìn)行 檢查。有時(shí)用戶怒氣沖沖地把你找來,程序卻沒有發(fā) 生任何問題,你一走,錯(cuò)誤又發(fā)作了。動(dòng)態(tài)內(nèi)存的生存期由我們決定,使用非常靈活,但問題也最多。在執(zhí)行函數(shù)時(shí),函數(shù)內(nèi)局部變量的存儲(chǔ)單元都可以在棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時(shí)這些存儲(chǔ)單元自 動(dòng)被釋放。 內(nèi)存分配方式 內(nèi)存分配方式有三種: ( 1)從靜態(tài)存儲(chǔ)區(qū)域分配。 中國(guó)最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) C++內(nèi)存管理詳解 程序員們經(jīng)常編寫內(nèi)存管理程序,往往提心吊膽。內(nèi)存在程序編譯的時(shí)候就已經(jīng)分配好,這塊內(nèi)存在程序的整個(gè)運(yùn)行期間都存在。棧內(nèi)存分配運(yùn)算內(nèi)置于處理器的指令集中,效率很高,但是分配的內(nèi)存容量有限。 常見的內(nèi)存錯(cuò)誤及其對(duì)策 發(fā)生內(nèi)存錯(cuò)誤是件非常麻煩的事情。 常見的內(nèi)存錯(cuò)誤及其對(duì)策如下: * 內(nèi)存分配未成功,卻使用了它。如果是用 malloc 或 new 來申請(qǐng)內(nèi)存,應(yīng)該用 if(p==NULL) 或if(p!=NULL)進(jìn)行防錯(cuò)處理。所以無論用何種方式創(chuàng)建數(shù)組,都別忘了賦初值,即便是賦零值也不可省略,不要嫌麻煩。 * 忘記了釋放內(nèi)存,造成內(nèi)存泄露。 動(dòng)態(tài)內(nèi)存的申請(qǐng)與釋放必須配對(duì),程序中 malloc 與 free 的使用次數(shù)一定要相同,否則肯定有錯(cuò)誤( new/delete 同理)。 ( 3)使用 free 或 delete 釋放了內(nèi)存后,沒有將指針設(shè)置為 NULL。 【規(guī)則 2】不要忘記為數(shù)組和動(dòng)態(tài)內(nèi)存賦初值。 【規(guī)則 5】用 free 或 delete 釋放了內(nèi)存之后,立即將指針設(shè)置為 NULL,防止產(chǎn)生“野指針”。 中國(guó)最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) 指針可以隨時(shí)指向任意類型的內(nèi)存塊,它的特征是“可變”,所以我們常用指針來操作動(dòng)態(tài)內(nèi)存。 a 的內(nèi)容可以改變,如 a[0]= ‘X’ 。 a[0] = ‘X’。 // 編譯器不能發(fā)現(xiàn)該錯(cuò)誤 cout p endl。同理,比較 b 和 a 的內(nèi)容是否相同,不能用 if(b==a) 來判斷,應(yīng)該用標(biāo)準(zhǔn)庫函數(shù) strcmp 進(jìn)行比較。 // 數(shù)組 char a[] = hello。 if(strcmp(b, a) == 0) // 不能用 if (b == a) // 指針 int len = strlen(a)。 if(strcmp(p, a) == 0) // 不要用 if (p == a) 中國(guó)最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) 示例 數(shù)組和指針的內(nèi)容復(fù)制與比較 計(jì)算內(nèi)存容量 用運(yùn)算符 sizeof 可以計(jì)算出數(shù)組的容量(字節(jié)數(shù))。 C++/C 語言沒有辦法知道指針?biāo)傅膬?nèi)存容量,除非在申請(qǐng)內(nèi)存時(shí)記住它。 char *p = a。 // 4 字節(jié)而不是 100 字節(jié) } 示例 ( b) 數(shù)組退化為指針 指針參數(shù)是如何傳遞內(nèi)存的? 如果函數(shù)的參數(shù)是一個(gè)指針,不要指望用該指針去申請(qǐng)動(dòng)態(tài)內(nèi)存。 // str 仍然為 NULL 中國(guó)最大的管理資料下載中心 (收集 \整理 . 部分版權(quán)歸原作者所有 ) strcpy(str, hello)。這就是指針可以用作輸出參數(shù)的原因。 如果非得要用指針參數(shù)去申請(qǐng)內(nèi)存,那么應(yīng)該改用“指向指針的指針”,見示例 。str, 100)。 free(str)。 return p。 cout str endl。 char *GetString(void) { char p[] = hello world。 // str 的內(nèi)容是垃圾 cout str endl。 } void Test5(void) { char *str = NULL。因?yàn)?GetString2 內(nèi)的“ hello world” 是常量字符串,位于靜態(tài)存儲(chǔ)區(qū),它在程序生命期內(nèi)恒定不變。但是“野指針”是很危險(xiǎn)的, if語句對(duì)它不起作用。例如 char *p = NULL。這種情況讓人防不勝防,示例程序如下: class A { public: void Func(void){ cout “Func of class A” endl。 p = amp。但奇怪的是我運(yùn)行這個(gè)程序時(shí)居然沒有出錯(cuò),這可能與編譯器有關(guān)。對(duì)象在創(chuàng)建的同時(shí)要自動(dòng)執(zhí)行構(gòu)造函數(shù),對(duì)象在消亡之前要自動(dòng)執(zhí)行析構(gòu)函數(shù)。我
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1