《程序运行时内存的占用.ppt》由会员分享,可在线阅读,更多相关《程序运行时内存的占用.ppt(7页珍藏版)》请在三一办公上搜索。
1、1,动态申请和释放存储空间的运算符,C语言利用库函数malloc 和 free 实现。C+语言利用运算符new 和delete实现。,2,格式1:malloc(size)功能:在内存的动态存储区中分配长度为size(单位:byte)连续空间,返回该连续域的首地址;未成功,返回 0。格式2:calloc(n,size)功能:与malloc(size)相同,区别是分配n个长度为size 的连续空间。格式3:free(ptr)功能:释放由ptr指向的内存区域(ptr是最近一次调用malloc或calloc 函数返回值),C中的malloc和free函数:,3,new运算符根据对象的类型,自动决定其大
2、小,而malloc要指定分配存储空间的大小,经常要用sizeof计算字节数;new返回指向此类型的指针,malloc返回指向void*类型的指针。详见P148,一般形式:type*p;p=new type;delete p;,4,ex 5.Char*pChar;pChar=new char;char*string=new char25;/delete pChar;delete string;,详见P148,5,2.6 程序的结构,整个程序,工程文件(.dsw,.prj):告诉编译器可执行文件由哪些.c文件装成;连上哪些.obj文件;要连的标准库.lib,6,2.7 程序运行时内存的占用,存放程序的代码部分,存放程序的全局数据和静态数据,存放程序动态申请的数据,存放程序的局部数据和参数,7,#includeint m=80;void F1(int w)static int n=70;int k=60;/1 m+;n+;k+;w+;/2 printf(“F1()-m:%d n:%d k:%d w:%dn”,m,n,k,w);void F2()int m=90;m+;/4 F1(m);printf(“F2()-m:%d n”,m);void main()int w=20;F1(w);/3 printf(“下面调用F2()n”);F2();,