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

正文內(nèi)容

(c語言課件)第17部分 動態(tài)存儲空間管理與鏈表-全文預(yù)覽

2025-03-27 19:18 上一頁面

下一頁面
  

【正文】 構(gòu) ? 一個結(jié)構(gòu)元素可以通過指針引用同類或不同類的結(jié)構(gòu)元素,多個結(jié)構(gòu)元素通過指針建立聯(lián)系。 } } return nCounter。 //計數(shù)器 for (int i = 0。 //釋放空間 Accounts[i] = NULL。 //返回位臵 } 1/21/2023 18 教師:林友芳 北京交通大學(xué)計算機與信息技術(shù)學(xué)院 功能示例 0x0012ff6d NULL 0x0012ff80 0x0012ce00 0x0012fe12 … 08120231 張帥帥 110108… M 08120239 李美美 350108… F 08120232 趙小飛 360108… M 08120237 羅小花 410108… F 0x0012ff6d 0x0012ff80 0x0012ce00 0x0012fe12 … 長度為 50 Accounts 08120230 孫悟空 110105… M 0x0012ff30 0x0012ff30 新找到的空位 新結(jié)點 孫悟空報到 1/21/2023 19 教師:林友芳 北京交通大學(xué)計算機與信息技術(shù)學(xué)院 功能實現(xiàn)(續(xù)) ? 將指定用戶號的用戶刪除,返回該用戶原來所在位臵 int DeleteAccountByNumber(struct UserAccount *Accounts[], int nLen, char *pszUserNO) { int i。 } ? 尋找一個空位臵返回, 1表示無空位臵 int FindEmptyPlace(struct UserAccount *Accounts[], int nLen) { … } //可以有不同的搜索策略 NULL NULL … 1/21/2023 17 教師:林友芳 北京交通大學(xué)計算機與信息技術(shù)學(xué)院 功能實現(xiàn)(續(xù)) ? 將新用戶放在空位臵上,不成功返回 1,成功返回位臵號 int AddNewAccountAtAnyEmptyPlace(struct UserAccount *Accounts[], int nLen, struct UserAccount *pUser) { int nPlace。 ? 將某個班指定用戶號的用戶刪除 ? 給某個班所有女生發(fā) m元補助 ? 將新生成的某個班用戶插入到指定位臵 i上, i后面的用戶順序往后退。 //定義一個長度為 10的整型指針數(shù)組(整型地址數(shù)組) ? char *psz[5]。 ? if (q == NULL) { /*未成功, p仍指原塊,特殊處理 */ } ? else { p = q。 ? 返回大小至少為 n的存儲塊指針,新塊與原塊一致: ? 新塊小時保存原塊 n范圍內(nèi)數(shù)據(jù); ? 新塊大時原數(shù)據(jù)存在,新增部分不初始化。 ? 注意 ? 該塊必須是通過動態(tài)存儲分配得到的,不要對并非指向動態(tài)分配塊的指針用本操作 ? p值為空時什么也不做 ? 執(zhí)行 free(p)后 p值未變,被指塊可能已變。 1/21/2023 10 教師:林友芳 北京交通大學(xué)計算機與信息技術(shù)學(xué)院 7. 空間釋放函數(shù): free ? 為保證動態(tài)存儲的有效使用,動態(tài)分配塊不再用時應(yīng)釋放。 ? size是元素大小 , n是個數(shù) 。 data=(double*)malloc(n*sizeof(double))。無法滿足時返回空指針值。 ? 動態(tài)分配、釋放由動態(tài)存儲管理系統(tǒng)完成,這是程序運行系統(tǒng)的子系統(tǒng),管理著稱作堆(英文 heap)的存儲區(qū)。 ? 動態(tài)存儲塊具有起始地址,地址可以存儲在指針里,因此可以借助于指針保存存儲空間地址。 ? 解決的辦法是?動態(tài)存儲分配?。 2)定義盡可能大的數(shù)組以滿足任何需要。 1/21/2023 3 教師:林友芳 北京交通大學(xué)計算機與信息技術(shù)學(xué)院 2. 問題的本質(zhì)及解決方案 ? 問題的本質(zhì) ? 程序運行中需要使用存儲,有時程序?qū)Υ鎯Φ男枨罅吭趯懗绦驎r不能確定。 ? int n。但編程時并不知道運行時需要處理多少學(xué)生成績,每次處理的成績項數(shù)也可能不同。 /* 不行! */ ? ... /* 讀入數(shù)據(jù),然后處理 */ ? 不能用變量說明 scores大小(必須靜態(tài)確定)。但數(shù)據(jù)很多時程序就不能用。系統(tǒng)可能無法容納幾個大數(shù)組,但實際上它們并不同時需要很大空間。在運行中根據(jù)需要動態(tài)進行。 1/21/2023 5 教師:林友芳 北京交通大學(xué)計算機與信息技術(shù)學(xué)院 4. 動態(tài)存儲釋放及存儲堆 ? 動態(tài)釋放 ? 不用的動態(tài)存儲塊應(yīng)交還系統(tǒng),動態(tài)申請的內(nèi)存空間必須由程序代碼以顯式的方式主動釋放。 /*size_t是某整型 */ ? 功能 ? 分配一塊不小于 n的存儲,返回其地址。 ... scanf(%d, n)。越界使用(尤其是越界賦值)是嚴重錯誤,可能導(dǎo)致程序或系統(tǒng)垮臺 1/21/2023 9 教師:林友芳 北京交通大學(xué)計算機與信息技術(shù)學(xué)院 6. calloc ? 帶計數(shù)和清 0的存儲分配函數(shù) calloc, 原型: ? void *calloc(size_t n, size_t size)。 ? 主要差別 ? malloc對所分配的區(qū)域不做任何事情 , calloc對整個區(qū)域自動清 0。 ? 功能 ? free釋放 p指的存儲塊。 p指原分配塊, n是新大小要求。 ? 常用寫法 (防止分配失敗導(dǎo)致原存儲塊丟失 ) : ? q = (double*)realloc(p, m * sizeof(double))。
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1