- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言动态数组的实现
C语言中动态数组的实现
(2009-05-10 10:19:30)
HYPERLINK javascript:; 转载
标签:
HYPERLINK /c.php?t=blogk=c%D6%D0%B6%AF%CC%AC%CA%FD%D7%E9ts=bpoststype=tag \t _blank c中动态数组
HYPERLINK /c.php?t=blogk=%BD%CC%D3%FDts=bpoststype=tag \t _blank 教育
分类: HYPERLINK /s/articlelist_1548797922_2_1.html \t _blank C语言学习
??? 近来编写几个程序,很多都用到了数组。但是对于数组的大小却是没有固定的,也就是说可以更改数组大小,其大小是可以变化的。并不像初学时的那样,告诉你一个范围,你就必须取最大值以满足要求。那样可能就会浪费很多不必要的内存单元!那么到底应该怎样定义一个动态数组列??????? 在数组一章中,曾介绍过数组的长度是预先定义好的, 在整个程序中固定不变。C语言中不允许动态数组类型。例如: int n;scanf(%d,n);int a[n]; 用变量表示长度,想对数组的大小作动态说明,这是错误的。但是在实际的编程中,往往会发生这种情况, 即所需的内存空间取决于实际输入的数据,而无法预先确定。对于这种问题,用数组的办法很难解决。为了解决上述问题,C语言提供了一些内存管理函数,这些内存管理函数可以按需要动态地分配内存空间,也可把不再使用的空间回收待用,为有效地利用内存资源提供了手段。其它文献中所提到的动态数组,指的就是利用内存的申请和释放函数,在程序的运行过程中,根据实际需要指定数组的大小.其本质是一个指向数组的指针变量.常用的内存管理函数有以下三个: 1.分配内存空间函数malloc 调用形式: (类型说明符*) malloc (size) 功能:在内存的动态存储区中分配一块长度为size 字节的连续区域。函数的返回值为该区域的首地址。 “类型说明符”表示把该区域用于何种数据类型。(类型说明符*)表示把返回值强制转换为该类型指针。“size”是一个无符号数。例如: pc=(char *) malloc (100); 表示分配100个字节的内存空间,并强制转换为字符数组类型,函数的返回值为指向该字符数组的指针, 把该指针赋予指针变量pc。 2.分配内存空间函数 calloc calloc 也用于分配内存空间。调用形式: (类型说明符*)calloc(n,size) 功能:在内存动态存储区中分配n块长度为“size”字节的连续区域。函数的返回值为该区域的首地址。(类型说明符*)用于强制类型转换。calloc函数与malloc 函数的区别仅在于一次可以分配n块区域。例如: ps=(struet stu*) calloc(2,sizeof (struct stu)); 其中的sizeof(struct stu)是求stu的结构长度。因此该语句的意思是:按stu的长度分配2块连续区域,强制转换为stu类型,并把其首地址赋予指针变量ps。 3.释放内存空间函数free 调用形式: free(void*ptr); 功能:释放ptr所指向的一块内存空间,ptr 是一个任意类型的指针变量,它指向被释放区域的首地址。被释放区应是由malloc或calloc函数所分配的区域。----------------------------------------------------------------------------------------------------------------------------------// 程 式 名: DynamicArray.c// 程式功能: 动态数组的实现// 功能描述: 动态数组的创建与使用#include stdio.h#include malloc.h#include stdlib.hvoid main(){???? int *array = 0, num, i;???? printf(please input the number of element: );???? scanf(%d, num);???? // 申请动态数组使用的内存块???? array = (int *)malloc(sizeof(int)*num);???? if (array == 0)???????????? // 内存申请失败,提示退出???? {???????? printf(out of memory,press any key to quit...\n
您可能关注的文档
- 7.妙单位“1”.ppt
- 7.力分配法.ppt
- 7.彩的翅膀doc.doc
- 70高120个文言实词——识.ppt
- 7、企资本周转能力分析.ppt
- 712月亲子活动小套圈.doc
- 7-契知识(2011年6月第七版).ppt
- 7公共门战略.ppt
- 7环境源价值与费用效益分析.ppt
- 7种方培养新人才.doc
- 2024特种作业煤矿安全作业考前冲刺试卷及答案详解.docx
- 2024特种作业煤矿安全作业真题【word】附答案详解.docx
- 2024特种作业煤矿安全作业考前冲刺练习试题及参考答案详解(研优卷).docx
- 2024特种作业煤矿安全作业真题带答案详解(满分必刷).docx
- 2024特种作业煤矿安全作业测试卷附答案详解(考试直接用).docx
- 2024特种作业煤矿安全作业测试卷(历年真题)附答案详解.docx
- 2024特种作业煤矿安全作业每日一练试卷附答案详解【培优B卷】.docx
- 2024特种作业煤矿安全作业测试卷(原创题)附答案详解.docx
- 2024特种作业煤矿安全作业测试卷及完整答案详解(历年真题).docx
- 2024特种作业煤矿安全作业每日一练试卷附参考答案详解(夺分金卷).docx
最近下载
- 基于大模型的生成式检索.pdf VIP
- 西门子伺服操作说明书-SINAMICS_V90_OPI.pdf VIP
- 电力工程施工安全与质量控制管理.docx VIP
- Packing List-装箱单表格模板.xls VIP
- 电力工程施工安全及质量控制管理.doc VIP
- 2025年最新版硫化氢考试题库大全集.doc VIP
- [江西]发电厂2×600mw级机组“上大压小”土建工程施工组织设计.doc VIP
- 《护患沟通技巧》ppt课件.pptx VIP
- 县乡教师选调进城考试《教育心理学》题库及答案(各地真题).docx VIP
- 发电厂“上大压小”2×600MW超临界空冷机组工程土建专业主要施工方案.docx VIP
文档评论(0)