- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动态记忆体配置---malloc函数范例
CSIM, PU C Language * 鏈結串列(Linked List) * 指 標 在指標類型中,兩種重要的運算子: :位址運算子,用來取得變數的記憶體位址。 * :取值運算子,用來取得指標所指向變數的內容 null 指標代表此指標不指向任何物件或函數 可用 0 來表示 null 指標。 例如: if (pi == NULL) printf(“It’s a empty pointer\n”); 可寫成 if (!pi) printf(“It’s a empty pointer\n”); * 動態記憶體配置---malloc函數 動態記憶體配置指的是在執行階段才向作業系統要求配置記憶體空間。 在C語言中,每次呼叫 malloc()函數,就會取得一塊可用的記憶體空間。 malloc函數配置失敗時會傳回一個空指標。 語法: 指標變數=(指標變數所指向的型態 *) malloc(所需的記憶空間) 將malloc()所傳回的位址強制轉換成指標變數所指向的型態 * 動態記憶體配置---malloc函數 例一: int *ptr; ptr=(int *) malloc(12); //配置3*4-12Bytes記憶空間,並把ptr指向它 例二: int *ptr; ptr=(int *) malloc(3*sizeof(int)); //配置可存放3個整數的記憶空間 ptr = (float*)malloc(sizeof(float)); 算出所需的記憶體空間大小 ptr = (資料型態*) malloc(sizeof(資料型態)); 型別轉換,將malloc函數傳回的 指標轉成符合配置的資料型態 配置一塊 float 的記憶體空間,指標 fp 指向此空間 * 動態記憶體配置---malloc函數 範例: #includestdio.h #includestdlib.h int main() { float *fp; fp=(float *)malloc(sizeof(float)); if(fp!=NULL) { *fp=3.14; printf(“數字=%f\n”,*fp); } else printf(“記憶體配置失敗!\n”); } * 動態記憶體配置---free函數 free函數可將已配置的記憶體空間歸還。 用法: 範例: free(指標變數); int main() { float *fp; fp=(float *)malloc(sizeof(float)); if(fp==NULL) printf(“記憶體配置失敗\n”); free(fp); } * 單向鏈結串列 單向鏈結串列是由節點(node)所串成的串列,如下圖所示。 bat ? cat ? sat NULL vat ? ptr 指向第ㄧ個節點的指標名稱(ptr)為此鏈結串列的名稱。 在單向鏈結串列中每個節點都包含兩個欄位: 資料欄位:存放資料的地方 鏈結欄位:指向下一個 node Data Link 單向鏈結串列的節點結構 * 單向鏈結串列 可使用自我參考結構(self-referential structure)來定義節點結構,如下: data link 為指標,指向另ㄧ個node結構 ptr 定義節點結構 可使用malloc函數來建立新節點,如下: typedef struct node SN; struct node { int data; SN *link; } ; SN *ptr; ptr為node結構的指標 配置一塊記憶體空間 ptr=(SN *)malloc(sizeof(SN)); * 單向鏈結串列 程式範例: #includestdio.h int main() { typedef struct node SN; struct node { int data; SN *link; }; SN *ptr, *first; ptr =(SN *)malloc(sizeof(SN)); first = (SN *)malloc(sizeof(SN)); ptr-data=10;
您可能关注的文档
- 但变幻无常更为美丽摘译自辛波丝卡WislawaSzymborska.PPT
- 伺服电动机可分为直流伺服电动机和交流伺服电动机.PPT
- 低相对分子质量环氧树脂.PPT
- 何振梁先生陈述发言.PPT
- 使溶液混合均匀保证溶质全部转移到容量瓶中⑤洗涤⑥定容.PPT
- 使用激光打印机的注意事项.DOC
- 供电箱内的保险丝额定值为.PPT
- 保定女职中专06至07学第一期期末考试.DOC
- 信息与机电工程学院-江苏城职业学院.DOC
- 信息学院报考-北京理工大学珠海学院.DOC
- DB23_T 3866-2024冰上龙舟赛事组织服务规范.docx
- DB32 2163-2012 棉纱单位可比综合电耗限额及计算方法.docx
- DB32∕T 2429-2013 棉花田间生长发育观察记载规范.docx
- DB23_T 3820-2024 工业互联网综合平台数据质量管理规范.docx
- DB23_T 3474-2023非煤智慧矿山信息系统技术规范.docx
- DB3201_T 1106-2022 工程地质层划分技术规范.docx
- DB33T 2515-2022公共机构“零碳”管理与评价规范.docx
- DB3301_T 0415-2023 装修垃圾收运处置管理规范.docx
- DB3311/T 106―2019“丽水山居”民宿服务要求与评价规范.docx
- DB3201T 1127-2022 慈善捐赠受赠管理规范.docx
最近下载
- 铁塔室外光电一体箱(技术规范书)-.docx VIP
- 铂科磁材在太阳能逆变器的应用.pdf VIP
- 2025·上海浦东新区·二模智慧藏于“笨办法”:慢工出细活的真谛+审题立意及范文-备战2025年中考语文各地名校模考卷作文导写.docx VIP
- 经血源传播疾病的医院预防控制措施.docx VIP
- 安全操作规程(全套).doc VIP
- (word完整版)苏州工业园区合格证第四版参考题库答案.pdf VIP
- 2025年北京市通州区中考一模从“乐在其中”悟人生真谛”审题立意及范文-备战2025年中考语文各地名校模考卷作文导写.docx VIP
- 2021版 客户侧电能计量装置通用设计要求 第1部分 10kV用电客户电能计量装置.docx VIP
- Q∕SYCQ 4008-2022 工业用液化轻烃原料(打印版).pdf VIP
- 租房合同范本(完美打印版)6篇 .pdf VIP
文档评论(0)