当前位置:编程学习 > C/C++ >>

多维动态数组

《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; 


 
 


补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,