- 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
- 2025冶金工业技能鉴定高分题库附答案详解【培优】.docx
- 2025甘肃省公务员行测附参考答案详解【能力提升】.docx
- 2025年上海市公务员行测真题含答案详解(培优A卷).docx
- 2025年伊犁州公务员行测真题带答案详解(B卷).docx
- 安全生产法律法规考试(四十八)(带答案A3带密封线紧凑页面下载打印就用).doc
- 电梯安全管理员考试(四十八)(带答案A3带密封线紧凑页面下载打印就用).doc
- 2025阿拉善盟公务员行测附参考答案详解【突破训练】.docx
- 2025年锡林郭勒盟公务员行测及参考答案详解【突破训练】.docx
- 2025年辽宁省公务员行测含完整答案详解(有一套).docx
- 2025年银川市公务员行测含完整答案详解(有一套).docx
最近下载
- 广州市荔湾区2021-2022五年级语文下册期末试卷及答案.pdf VIP
- 小学数学教师解题能力竞赛试题(附参考答案) .pdf VIP
- 2025八项规定精神学习教育知识竞赛55题题库(含答案).pdf VIP
- 二年级下册数学期末试卷(一附小).FIT).pdf VIP
- 国开数据结构(本)课程实验报告.docx VIP
- 2023-2024学年广东省佛山市南海区桂城街道四年级(下)期末语文试卷.pdf VIP
- 康复医学教案.pdf VIP
- 第18课《我的白鸽》教学设计 2024—2025学年统编版语文七年级上册.docx VIP
- 碳酸根 碳酸氢根 氢氧根 方法验证DZT0064.49-93.docx
- NGW型行星齿轮减速器设计.docx
文档评论(0)