《C++ Primer》中說:在C++中沒有多維數組,只有元素師數組的數組。
如:要想創建一個二維整數數組,首先要創建一個一維動態數組,它由int *類型的指針構成。int*就是這個一維int指針數組的類型。
下面舉例說明
[cpp]
// 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;
}