欢迎来到天天文库
浏览记录
ID:41198899
大小:615.50 KB
页数:22页
时间:2019-08-18
《DynamicObjects动态对象》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DynamicObjectsProgrammingMemoryManagementStaticMemoryAllocationMemoryisallocatedatcompilationtimeDynamicMemoryMemoryisallocatedatrunningtimeConceptualViewofMemory(DYNAMICMEMORY)Staticvs.DynamicObjectsStaticobjectMemoryisacquiredautomaticallyMemoryisreturnedautomaticallywhenobjectgoesout
2、ofscopeDynamicobjectMemoryisacquiredbyprogramwithanallocationrequestnewoperationDynamicobjectscanexistbeyondthefunctioninwhichtheywereallocatedObjectmemoryisreturnedbyadeallocationrequestdeleteoperationMemoryAllocation{inta[200];…}int*ptr;ptr=newint[200];…delete[]ptr;newdeleteObject(var
3、iable)creation:NewSyntaxptr=newSomeType;whereptrisapointeroftypeSomeTypepUninitializedintvariableExampleint*p=newint;Object(variable)destruction:DeleteSyntaxdeletep;storagepointedtobypisreturnedtofreestoreandpisnowundefinedpExampleint*p=newint;*p=10;deletep;10ArrayofNew:dynamicarraysSyn
4、taxP=newSomeType[Expression];WherePisapointeroftypeSomeTypeExpressionisthenumberofobjectstobeconstructed--wearemakinganarrayBecauseoftheflexiblepointersyntax,PcanbeconsideredtobeanarrayExampleDynamicMemoryAllocationRequestfor“unnamed”memoryfromtheOperatingSystemint*p,n=10;p=newint;p=n
5、ewint[100];pnewpnewp=newint[n];pnewMemoryAllocationExampleNeedanarrayofunknownsizemain(){cout<<“Howmanystudents?“;cin>>n;int*grades=newint[n];for(inti=0;i>mark;grades[i]=mark;}...printMean(grades,n);//callafunctionwithdynamic
6、array...}Freeing(ordeleting)MemoryASimpleDynamicListExamplecout<<"Enterlistsize:";intn;cin>>n;int*A=newint[n];if(n<=0){cout<<"badsize"<7、izevoidinitialize(intlist[],intsize,intvalue){for(inti=0;i
7、izevoidinitialize(intlist[],intsize,intvalue){for(inti=0;i
此文档下载收益归作者所有