三维数组的指针操作

 

多维数组的指针操作一直不熟练,经测试后的代码记录如下

#include <iostream> using namespace std; void print3Array(int ***array1,int size1,int size2,int size3) { int i,j,k; for(i = 0; i < size1; i ++) for(j = 0; j < size2; j++) for(k = 0; k < size3; k++) cout<< *(int *)(array1+i*size2*size3+j*size3+k)<<" "; } void copyarray(int ***dst,int***src,int size1,int size2,int size3 ) { int i,j,k; for(i = 0; i < size1; i ++) for(j = 0; j < size2; j++) for(k = 0; k < size3; k++) *(int *)(dst+i*size2*size3+j*size3+k)=*(int *)(src+i*size2*size3+j*size3+k); } int main() { int i,j,k; int size1=3; int size2=3; int size3=3; int backup[3][3][3]; int array1[3][3][3]; int x=1; for(i = 0; i < size1; i++) for(j = 0; j < size2; j++) for(k = 0; k < size3; k++) (**backup)[i*size2*size3+j*size3+k]=x++; print3Array((int***)backup,size1,size2,size3); copyarray((int***)array1,(int***)backup,size1,size2,size3); cout<<endl; print3Array((int***)array1,size1,size2,size3); } 

 

你可能感兴趣的:(测试,DST)