`
prothi
  • 浏览: 59550 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

c++动态创建二维数组

    博客分类:
  • c++
阅读更多
c++动态创建二维数组

方法1:用一维数组代替二维数组
int n,m;
cin>>n>>m;
int* a = new int[n*m];
for(int i = 0 ; i<n ; ++i)
{
cout<<endl;
for(int j = 0 ; j<m ; ++j)
{
  a[i*m+j] = i+j;
  cout<<a[i*m+j]<<"  "<<&a[i*m+j]<<" ";
}
}
  cout<<endl;
  delete[] a;

运行结果:
0  00491BB0    1  00491BB4     2  00491BB8
1  00491BBC    2  00491BC0     3  00491BC4
2  00491BC8    3  00491BCC     4  00491BD0

各个元素的内存地址是递增的,是在堆区里分配的内存空间。


方法2:二维数组
  int n,m;
  cin>>n>>m;
  int** a = new int*[n];\\\\\创建指针数组
  for(int i = 0;i<n;i++)
  {
     a[i] = new int[m];\\\\\\\\为每一行分配空间
  }
 
  for(int f =0;f<n;f++)
  {
     for(int j =0;j<m;j++)
  {
     a[f][j] = f+j;\\\\\\\\\\\\为数组赋值
  }
  }


其实大家更关心二维数组在内存中是如何分配空间的:
输出每个元素的地址:
for(int k = 0;k<n;++k)
  {
     cout<<endl;
     for(int s = 0;s<m;++s)
  {
     
   cout<<&a[k][s]<<"  ";
  }
  }

输出结果:
00491B40  00491B44  00491B48
004918D0  004918D4  004918D8
00491890  00491894  00491898

每一行的相邻元素地址是递增的,连续的,不同行之间的地址就不连续了。
分享到:
评论

相关推荐

    C++动态创建二维数组.zip_源码/资料_C++_

    IDE: VS2015。利用C++动态创建二维数组,并可以求该二维数组中的最大值

    Vector创建二维数组

    vector创建二维数组。在编程中,Vector 通常指的是一个可以动态增长和缩小的数组。然而,在许多编程语言的标准库中,Vector 主要是...下面我将介绍如何使用一维 Vector(以 C++ 的 std::vector 为例)来创建二维数组。

    vector创建二维数组

    在C++中,可以使用vector来创建二维数组。vector是C++标准库中的一个动态数组容器,可以自动管理内存的分配和释放。使用vector创建二维数组时,需要先创建一个外层的vector,然后为每个元素再创建一个内层的vector。...

    C++利用函数动态创建二维数组

    主要为大家详细介绍了C++利用函数动态创建二维数组,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    C/C++动态二维数组 动态数组及文件操作 大学程序设计

    读取文本中矩阵数据,动态创建二维数组,通过高斯消元法求解,b&gt;增广矩阵,将球截结果保存至用户自定义文本中。 //

    C++二维动态数组的创建与删除

    C++中用new动态创建二维数组的格式一般是这样:TYPE (*p)[N] = new TYPE [][N]; 其中,TYPE是某种类型,N是二维数组的列数。采用这种格式,列数必须指出,而行数无需指定。在这里,p的类型是TYPE*[N],即是指向一个...

    c++创建二维动态数组与内存释放问题

    主要介绍了c++创建二维动态数组与内存释放问题,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    Lily_halcon.cpp

    重点::将HTuple类型的属相数据转为C++中熟悉的二维数组array[n][m],方便后续对数组进一步处理。(其中包含Halcon数据类型到C++中int转换(double,char同理的)、动态创建数组、释放数组内存)**需要有Halcon和C++...

    C/C++ 动态数组的创建的实例详解

    在C++语言中,二维动态数组主要使用指针的方法建立,以建立一个整数二维数组为例: #include #include #include using namespace std; int main(int argc,char **argv) { ///*int a[2][3]={{1,2,3},{4,5,6}}; //...

    网二维数组的动态创建和释放.pdf 网负号重载(1).pdf 网负号重载pdf 赋值号“==“重载(1).pdf 赋值号"==

    网二维数组的动态创建和释放.pdf 网负号重载(1).pdf 网负号重载pdf 赋值号“==“重载(1).pdf 赋值号"== “重载.pdf 构造函数可以调用虚函数吗, 析构函数可... 后置加加(1).pdf 后置加加.pdf 网将模板声明为友元.pdf ...

    在python中创建指定大小的多维数组方式

    python中创建指定大小的二维数组,有点像C++中进行动态申请内存创建数组,不过相比较而言,python中更为简单一些。 创建n行m列的二维数组: n = 2 m = 3 matrix = [None]*2 for i in range(len(matrix)): matrix[i]...

    c++高斯消元法设计

    //定义m行n列的动态数组 float **p=new float*[m]; for(int i=0;i;i++) { p[i]=new float[m]; } ifstream oin("p59.txt"); float fn[100]; int jishu=0; for(float a;oin&gt;&gt;a;) { fn[jishu]=a; jishu...

    Arduino-List:实现动态数组的Arduino库

    Arduino列表库Arduino库,实现了一个动态大小的数组,即一个可以添加或删除元素的集合,并且该集合根据存储的元素数量来增加或减少其容量。 更多信息使用说明List类的操作与C ++中的Vector类相似,但是其实现方式很...

    Visual C++开发实战1200例 第3章

    实例105输出二维数组任一行任一列值 实例106使用指针查找数列中的最大值和最小值 实例107用指针数组构造字符串数组 实例108将若干字符串按照字母顺序输出 实例109用指向函数的指针比较大小 实例110用指针函数实现求...

    ch0+变量指针和引用9个练习题.ppt

    C语言的基本练习和C++引用,包括一般变量的内涵、指针变量的内涵、一维整型数组、二维整型数组、字符数组和字符串、练习局部变量的引用、简单的形参的引用方式、引用方式在函数中创建一个动态数组、标准C方式在函数...

    01背包问题动态规划.docx

    // 创建一个二维数组dp,其中dp[i][w]表示前i个物品放入容量为w的背包中所能获得的最大价值 vector&lt;vector&lt;int&gt;&gt; dp(n + 1, vector(W + 1, 0)); // 动态规划求解 for (int i = 1; i ; ++i) { for (int w = 1; ...

Global site tag (gtag.js) - Google Analytics