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

正文內(nèi)容

【能力素質(zhì)】c++內(nèi)存管理詳解-預(yù)覽頁(yè)

 

【正文】 a[0] = ‘X’。 // 編譯器不能發(fā)現(xiàn)該錯(cuò)誤cout p endl。應(yīng)該用標(biāo)準(zhǔn)庫(kù)函數(shù)strcpy進(jìn)行復(fù)制。同理,語(yǔ)句if(p==a) 比較的不是內(nèi)容而是地址,應(yīng)該用庫(kù)函數(shù)strcmp來(lái)比較。 // 不能用 b = a。 // 不要用 p = a。指針p指向a,但是 sizeof(p)的值卻是4。示例733(b)中,不論數(shù)組a的容量是多少,sizeof(a)始終等于sizeof(char *)。 // 12字節(jié)cout sizeof(p) endl。指針參數(shù)是如何傳遞內(nèi)存的?示例741中,Test函數(shù)的語(yǔ)句GetMemory(str, 200)并沒(méi)有使str獲得期望的內(nèi)存,str依舊是NULL,為什么?void GetMemory(char *p, int num){ p = (char *)malloc(sizeof(char) * num)。 // 運(yùn)行錯(cuò)誤}       試圖用指針參數(shù)申請(qǐng)動(dòng)態(tài)內(nèi)存 這就是指針可以用作輸出參數(shù)的原因。  如果非得要用指針參數(shù)去申請(qǐng)內(nèi)存,那么應(yīng)該改用“指向指針的指針”。str, 100)。 free(str)。這種方法更加簡(jiǎn)單?!tr = GetMemory3(100)。}        用函數(shù)返回值來(lái)傳遞動(dòng)態(tài)內(nèi)存 char *GetString(void){ char p[] = hello world。 // str 的內(nèi)容是垃圾 cout str endl。,會(huì)怎么樣?char *GetString2(void){ char *p = hello world。 cout str endl。因?yàn)镚etString2內(nèi)的“hello world”是常量字符串,位于靜態(tài)存儲(chǔ)區(qū),它在程序生命期內(nèi)恒定不變?!耙爸羔槨辈皇荖ULL指針,是指向“垃圾”內(nèi)存的指針。任何指針變量剛被創(chuàng)建時(shí)不會(huì)自動(dòng)成為NULL指針,它的缺省值是隨機(jī)的,它會(huì)亂指一氣。char *str = (char *) malloc(100)。這種情況讓人防不勝防,示例程序如下:class A{ public:  void Func(void){ cout “Func of class A” endl?!  = amp。它們都可用于申請(qǐng)動(dòng)態(tài)內(nèi)存和釋放內(nèi)存。  因此C++語(yǔ)言需要一個(gè)能完成動(dòng)態(tài)內(nèi)存分配和初始化工作的運(yùn)算符new,以及一個(gè)能完成清理與釋放內(nèi)存工作的運(yùn)算符delete。class Obj{ public :  Obj(void){ cout “Initialization” endl。 }}。 // 清除工作 free(a)?! ☆?lèi)Obj的函數(shù)Initialize模擬了構(gòu)造函數(shù)的功能,函數(shù)Destroy模擬了析構(gòu)函數(shù)的功能。由于內(nèi)部數(shù)據(jù)類(lèi)型的“對(duì)象”沒(méi)有構(gòu)造與析構(gòu)的過(guò)程,對(duì)它們而言malloc/free和new/delete是等價(jià)的。所以new/delete必須配對(duì)使用,malloc/free也一樣。例如:void Func(void){ A *a = new A。例如:void Func(void){ A *a = new A?! ∩鲜觯?)(2)方式使用最普遍。如果不用exit(1) 把壞程序殺死,它可能會(huì)害死操作系統(tǒng)。我在Windows 98下用Visual C++編寫(xiě)了測(cè)試程序,見(jiàn)示例7?! ∥铱梢缘贸鲞@么一個(gè)結(jié)論:對(duì)于32位以上的應(yīng)用程序,“內(nèi)存耗盡”錯(cuò)誤處理程序毫無(wú)用處?!hile(TRUE) {  p = new float[1000000]。malloc/free 的使用要點(diǎn)  函數(shù)malloc的原型如下:int *p = (int *) malloc(sizeof(int) * length)?! ? malloc函數(shù)本身并不識(shí)別要申請(qǐng)的內(nèi)存是什么類(lèi)型,它只關(guān)心內(nèi)存的總字節(jié)數(shù)。cout sizeof(char) endl。cout sizeof(unsigned long) endl。 new/delete 的使用要點(diǎn)  運(yùn)算符new使用起來(lái)要比函數(shù)malloc簡(jiǎn)單得多,例如:  這是因?yàn)閚ew內(nèi)置了sizeof、類(lèi)型轉(zhuǎn)換和類(lèi)型安全檢查功能。class Obj{ public :  Obj(void)。 // 初值為1 … delete a。例如Obj *objects = new Obj[100]。 // 正確的用法delete objects。躲避指針不是辦法,后來(lái)我改寫(xiě)了這個(gè)軟件,代碼量縮小到原先的一半。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1