《C++ Primer》中说:在C++中没有多维数组,只有元素师数组的数组。
如:要想创建一个二维整数数组,首先要创建一个一维动态数组,它由int *类型的指针构成。int*就是这个一维int指针数组的类型。
// String.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include<iostream> typedef int* IntArrayPtr; ///(1) void fill_array(int a[] , int size); void sort(int a[] , int size); int main(int argc, char* argv[]) { using namespace std; int row , col ; cout<<"Enter the row and column dimensions of the array:\n"; cin>>row>>col; IntArrayPtr *m;///(2) int i ,j ; m = new IntArrayPtr[row]; //申请内存 for(i = 0 ;i < row ;i++) m[i] = new int[col]; ///m现在成为一个row * col 的数组 cout<<"Enter "<<row <<" rows of " <<col<<" integers each:\n"; ///赋值 for(i = 0 ; i < row ; i++) for( j = 0; j < col ; j++) cin>>m[i][j]; ///打印二维动态数组 cout<<"Echoing the 2 dimesional array:\n"; for(i = 0; i < row ;i++) { for( j = 0; j < col ; j++) cout<<m[i][j]<<" "; cout<<endl; } ///释放内存 for( i = 0 ;i < row ; i++) delete [] m[i]; delete [] m; return 0; }