实验七动态内存分配及数组.docVIP

  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文档。上传文档
查看更多
VisualC++实验报告 实验名称 实验七动态内存分配及数组、指针和引用 学 院 测绘学院 课 程 Visual C++6.0教程 姓 名 王彬彬 学 号 日 期 2012.11.19 实验目的 掌握一维数组、二维数组的定义与应用。 掌握数组元素的初始化方法。 掌握指针及指针数组的使用方法。 掌握按数组方式、指针方式、地址方式输出数组元素的方法。 掌握存储空间的动态分配与使用。 通过Debug调试功能观察指针及其所指向存储单元的内容。 实验任务 本实验包括以下三项任务。 数组元素的访问与初始化 定义一个三行四列的二维数组,并将数组元素进行初始化为以下指定值: {18,21,12,13,28,22,13,14,58,68,29,28} 并以下标方式、地址方式、指针方式分别输出该二位数组元素。 动态内存分配与使用 使用指针申请N个动态(N为某一指定常数)存储空间,由键盘输入N个数据,并验证存储结果;将以上存储空间的数据进行平方元算,并将运算结果值赋值给数组array。 3.Debug跟踪程序的执行 使用Debug调试功能观察程序的执行过程(任务2),观察指针的内容及其所指向对象的内容。 实验指导 数组元素的访问方法 根据任务1的要求,定义二维数组array[3][4]和指针数组*p[3],这样可以分别实现以下标方式、地址方式、指针方式,分别输出二维数组各元素。 程序代码如下: //sy071.cpp #includeiostream.h void main() { int array[3][4]={18,21,12,13,28,22,13,14,58,68,29,28}; int i,j,*p[3]; cout按数组下标方式输出二维数组:endl; for(i=0;i3;i++) { for(j=0;j4;j++) coutarray[i][j] ; coutendl; } cout按地址方式输出二维数组:endl; for(i=0;i3;i++) { for(j=0;j4;j++) cout*(*(array+i)+j) ; coutendl; } cout按指针方式输出二维数组:endl; for(i=0;i3;i++) { p[i]=array[i]; for(j=0;j4;j++) cout*(*(p+i)+j) ; coutendl; } } 2.动态内存分配方法 根据任务2的要求,定义double型指针*ptr,使用new语句申请动态内存;为提高程序的通用性,动态内存空间的大小定义为常数N。 程序代码如下: //sy072.cpp #includeiostream.h const int N=6; void main() { int i; double *ptr; ptr=new double[N]; cout输入N个数,不同数据之间以空格分隔:endl; for(i=0;iN;i++) { cin*(ptr+i); } coutptr=ptrendl; cout输出N个数如下:endl; for(i=0;iN;i++) { cout*(ptr+i) ; } coutendl; coutN个数平方以后输出如下endl; double array[N]; for(i=0;iN;i++) { array[i]=(*(ptr+i))*(*(ptr+i)); *(ptr+i)=array[i]; coutarray[i]=array[i],*(ptr+i)=*(ptr+i)endl; } } 程序调试 选择Buid|Start Debug|Step Into选项,或快捷键F11,程序进入单步执行状态,在Visual Studio中,光标停留在主函数main的入口处。 从Debug菜单或Debug工具栏中单击Step Over,程序进入单步执行状态,反复单击Step Over,并按要求输入N个数据。 当单步执行到如图箭头所指向的语句时,在Watch窗口的Name列依次输入*ptr~*(ptr+5),观察指针ptr及其内容。在图中,当单步执行到第5次循环时,ptr的值为0通过Watch窗口可观察指针所指向的存储单元的值,其值与程序运行结果完全一致。 继续单击Step Over,当单步执行到如图左边箭头所指向的语句时(第5次循环),指针及其所指向地址单元的值可通过下图右下方的Watch窗口观察。 继续单步执行,直到程序结束,

文档评论(0)

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

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

1亿VIP精品文档

相关文档