《高级语言程序设计教学课件》第11章.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《高级语言程序设计教学课件》第11章.ppt》由会员分享,可在线阅读,更多相关《《高级语言程序设计教学课件》第11章.ppt(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第11章章 指针高级应用指针高级应用2 动态内存分配动态内存分配n实现按需分配实现按需分配。根据程序的实际需要进行内存的。根据程序的实际需要进行内存的分配和释放。以前的都是按计划分配(如数组必分配和释放。以前的都是按计划分配(如数组必须指定长度)须指定长度)n动态内存分配相关函数(动态内存分配相关函数(stdlib.h中)中)malloc(size):):分配分配size个字节的存储空间个字节的存储空间 free(p):释放释放指针指针p指向的之前已分配的空间指向的之前已分配的空间3动态分配函数动态分配函数nmalloc函数函数void *malloc(unsigned int size)
2、;void *malloc(unsigned int size);作用:在内存的动态存储区中分配一个长度为作用:在内存的动态存储区中分配一个长度为 size的连续空间的连续空间返回值:成功,返回指向分配域起始地址的指针;返回值:成功,返回指向分配域起始地址的指针;否则,返回空指针否则,返回空指针(NULL)例如,由用户从键盘输入来确定一个数组的长度。例如,由用户从键盘输入来确定一个数组的长度。int n,*p;int n,*p;printfprintf(”请输入数组的长度请输入数组的长度”);”);scanf(“%d”,&n);scanf(“%d”,&n);p=(int*)malloc(n*4
3、);p=(int*)malloc(n*4);if(p=NULL)if(p=NULL)printf printf(”分配失败分配失败”);”);elseelse printf printf(”分配成功分配成功”);”);4n nfree函数函数void free(void*p);void free(void*p);作用:释放作用:释放作用:释放作用:释放p p指向的内存区,使这部分内存区能指向的内存区,使这部分内存区能指向的内存区,使这部分内存区能指向的内存区,使这部分内存区能被其他变量使用。被其他变量使用。被其他变量使用。被其他变量使用。P P是调用是调用是调用是调用mallocmalloc时
4、返回的值。时返回的值。时返回的值。时返回的值。返回值:无返回值返回值:无返回值返回值:无返回值返回值:无返回值动态释放函数动态释放函数int n,*p;int n,*p;printfprintf(”请输入数组的长度请输入数组的长度”);”);scanf(“%d”,&n);scanf(“%d”,&n);p=(int*)malloc(n*4);p=(int*)malloc(n*4);if(p=NULL)if(p=NULL)printf printf(”分配失败分配失败”);”);elseelse printf printf(”分配成功分配成功”);”);free(p);free(p);5用结构体处
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级语言程序设计教学课件 高级 语言程序设计 教学 课件 11
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内