相关服务

  • 《现代电子技术》2006年第24期摘录:纳06年第24期总第239bo

如发现有乱码,请点击下面链接浏览原文
正文摘录:

纳06年第24期总第239boolDelete2DArrays(double{for(inti一0;i<sizel;i++)delete[]a[i];delete[]a;a—O;j/指针赋空值returntrue;}2.2三维动态数组的实现三维动态数组是在二维数组上的扩展。由于三维产生的数据元素相对是较多的,因此为了数组使用方便,本文所给代码在分配内存时将各个元素都赋予了初始值0。通常在开始定义指针a时要给予初值为NULL。即:double**。a—NULl。:下面给出代码:boolMake3DArrays(double***size3)ta—newdouble**[sizel]:for(inti一0;i<sizel;i++){aEi]一newdouble*[size2]:for(intj一0;j<size2;j++)a[i][j]一newdouble[size3];for(intk=0;k<size3;k++)aEi]Ej]Ek]一0.0:}}returntrue;}//释放内存空间boolDelete3DArrays(double**”{for(inti一0;i<sizel;i++){for(intj:0;j<size2;j++){delete口aEi]Ej];)delete[]aEi];}delete口a;a—NULL;returntrue;)2.3多维动态数组的实现此时三维以上的动态数组建立已经不是问题。指针是比较难理解,但是参照上面的二维扩展到三维,那么四维、五维等动态数组的建立就很简单了。例如,四维动态数组建立的代码为:boolMake4DArrays(doublesize3,intsize4)fa—newdouble***[sizel];for(inti一0;i<sizel;i++)Ia[门一newdouble**[size2]:for(intj一0;j<size2;j++)4a[-][j]一newdouble*[size3]:for(intk—O;k<size3;k++)Ja[i2[j2[k]一newdouble[size4];for(intl一0;l<size4;l++)aEi]Ej]Ek][1]一0.0:}}returntrue;}//释放内存空间boolDelete4DArrays(double****size3){for(inti一0;i<sizel;i++)(for(intj一0;j<size2;j++){for(intk一0;k<size3;k++)(delete口aEi]Ej]Ek];}delete口aEi][j];}delete[]~l-i];}delete[]a;a—NULL;returntrue;文中的所有代码在VisualC”环境下经验证是正确的,此处不再赘述。3结语解决了多维动态数组的较快的实现问题,在遇到要用c“编写相关程序时,不用再考虑数组的大小和数据结构问题,也不用考虑指针的复杂使用问题,从而增加了应用的灵活性,提高了编程的效率。参考文献[1]DeitelHM,DeitelPJ.C’’程序设计教程[M].薛万鹏,译.北京:机械工业出版社,2001.[2]BjarneStroustrup.C’’程序设计语言[M].裘宗燕,译.北京:机械工业出版社,2002.[3]谭浩强.C程序设计[M].北京:清华大学出版社,1991.作者简介张雪彬男,1976年出生,山东省庆云县人,硕士研究生。

阅读此文(图):   点击此处在线翻阅