《c语言中指针用法PPT》.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例6-15 下面的程序在堆内存中动态地建立整型数组 array所需的空间,给每一个元素赋值并输出。 #include iostream.h #include malloc.h void main() { int arraysize;//数组长度 int *array,count; cout “请输入元素个数:”; cin arraysize; if ((array=(int *)malloc(arraysize* sizeof(int)))==NULL) { cout 申请不到内存空间; } 分析: ① 程序通过调用malloc函数,在运行过程中动态建立array数组; else { for (count=0;countarraysize;count++) array[count] = count*2; //赋值 for (count=0;countarraysize;count++) cout array[count] ; //输出 cout endl; free(array); } } ② 该数组的空间大小由arraysize*sizeof(int))动态确定(因为arraysize可以由用户输入)。 输入:10 输出:0 2 4 6 8 10 12 14 16 18 3)new操作符 new操作符是c++专有的,用来分配堆内存,其功能类似于malloc和calloc,但不同之处在于, new是操作符而不是函数,因而更为简洁和高效。 (1)格式 new 操作数 解释: 操作数描述为:类型名[初始化值表] 例如:new char—为单个字符变量申请内存空间。 new int[10]———为整型数组申请内存空间。 例如:new char[100],申请能存放100个字符的 内存空间,等同于建立一个有100个元素的字符 数组。 初始化值表可以指明数据个数,也可以直接给出各个数据的初始值。 new操作返回一个指针,该指针的类型与操作数中的类型名相同 。 例如:new char[100];返回字符类型指针。 (2)new操作的应用实例 注意:可以将返回值直接赋予同类型指针,请看下面的例子: char *s; s=new char[100]; //等同于s=(char *)calloc(100,sizeof(char)) 例6-16 将例6-15中给array申请内存空间,改为用 new操作实现。 #include iostream.h #include malloc.h void main( ) { int arraysize; //数组长度 int *array,count; cout 请输入元素个数:; cin arraysize; if ((array=new int[arraysize])==NULL) { cout 申请不到内存空间; } else { for (count=0;countarraysize;count++) array[count] = count*2; //赋值 for (count=0;countarraysize;count++) cout array[count] ; //输出 cout endl; delete[]array; } } 3.释放堆内存 凡是调用calloc函数、malloc函数或执行new操作申请的内存空间,在函数调用结束后并不会自动释放,只能由程序自行释放,所以使用完毕或退出函数之前一定要释放。 调用calloc函数、malloc函数申请的空间,可调用free函数来释放;用new操作申请的空间则用delete操作来释放。 1)free函数 格式:(函数原型) void free(void *p); 解释: 参数p,是一个无符指针,该指针指向要释放的内存空间首地址。 该函数的类型是void,故没有返回值。 2)delete操作符 格式 : delete pointer 或 delete

文档评论(0)

tangtianxu1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档