欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c++多维数组的动态分配教程

程序员文章站 2022-03-26 09:31:55
我们知道在c或者c++里面,基本数组的定义必须是常数才可以。动态分配内存没法直接了当。 在c++ 里可以vector来动态分配, 例如: vector> dp(n + 1, vec...

我们知道在c或者c++里面,基本数组的定义必须是常数才可以。动态分配内存没法直接了当。

在c++ 里可以vector来动态分配,

例如:

    vector> dp(n + 1, vector(w + 1));

但是更基本的做法是指针来new,

一维数组:

1 int *array1d;
2 //假定数组长度为m
3 //动态分配空间
4 array1d = new int [m];
5 //释放
6 delete [] array1d;

二维数组:

int **array2d;
//假定数组第一维长度为m, 第二维长度为n
//动态分配空间
array2d = new int *[m];
for( int i=0; i

p.s. 事实上二维数组空间的释放还可以更简单地用:delete [] array2d;

三维数组;

int ***array3d;
//假定数组第一维为m, 第二维为n, 第三维为h
//动态分配空间
array3d = new int **[m];
for( int i=0; i

c语言malloc 版本:

#include
int **a=(int **)malloc(m*sizeof(int *));
for(int i=0;i
        
   
;>
;>