今天最算法project时遇到需要使用一个动态数组,并且这个数组在编译时还是不知道大小的,到底能不能给二维数组动态分配空间,我还真没试过。是不是跟一维数组一样?用int *ar = new int[n][m],试了一下不行。
后来试了很多方法参考了网上的资料终于理解了,其实方法还是跟一维数组一样,至少说二维数组可以看成是地址的地址。具体方法如下:
void test_two_array()
{

int r ,c ;//r 表示行,c表示列
cin >> r>> c;
cout<<endl ;
//数组的第一维动态分配空间,相当于动态分配一个类型为Int* 的数组的空间相当于ar[],想给每一行分配the   array   with   row   r,column   c
//相当于创建一个指针数组int*[],每一个数组元素是一个指针,代表一行,共r行
int * *ar = new int*[r] ;
for (int i = 0 ;i< r ; i++)
{
   *(ar+i) = new int[c]; //相当于给每一行动态分配c个数组元素空间,每个其实就是一列(相当于对每个数组的第二维动态分配空间 ar[][] 给各个列分配),
   //i=0是表示给第一行分配c个整型元素空间
}
//test
for (int i = 0 ; i < r ; i++)
{

   for (int j = 0 ; j<c ; j++)
   {
    ar[i][j] = 10*(i+1)+(j+1) ;
    cout << ar[i][j] << "\t" ;
   }
   cout << endl ;

}

转载于:https://blog.51cto.com/pingpeace/284555

如何给一个二维数组动态分配内存相关推荐

  1. 二维数组动态分配内存

    二维数组动态分配内存 C 二维数组动态分配和释放 (1)已知第二维 Code-1 char (*a)[N];//指向数组的指针 a = (char (*)[N])malloc(sizeof(char ...

  2. [CareerCup] 13.10 Allocate a 2D Array 分配一个二维数组

    13.10 Write a function in C called my2DAlloc which allocates a two-dimensional array. Minimize the n ...

  3. 间接通过new 来申请一个二维的堆内存数组

    我们知道无法直接通过new 来申请一个二维的堆内存数组,于是有人想出了这样一个办法:创建一个一维堆内存指针数组,即每个数组元素是一个指针,然后用new 给各个指针分配一个一维的堆内存数组,那么最后表示 ...

  4. 用malloc动态申请一个二维数组的三种方法

    方法一:利用二级指针申请一个二维数组. #include<stdio.h> #include<stdlib.h> int main() { int **a; //用二级指针动态 ...

  5. c语言二维数组存储坐标,C语言的二维数组在内存中的存放顺序

    C语言的二维数组在内存中的存放顺序 发布时间:2020-06-28 18:23:49 来源:亿速云 阅读:708 作者:Leah 这期内容当中小编将会给大家带来有关C语言的二维数组在内存中的存放顺序, ...

  6. ACMNO.24 C语言-转置矩阵 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。 输入 一个3x3的矩阵 输出 转置后的矩阵 样例

    题目描述 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换. 输入 一个3x3的矩阵 输出 转置后的矩阵 样例输入 1 2 3 4 5 6 7 8 9 样例输出 1 4 7 2 5 8 3 ...

  7. python求二维数组各行最大值_python+numpy按行求一个二维数组的最大值方法

    问题描述: 给定一个二维数组,求每一行的最大值 返回一个列向量 如: 给定数组[1,2,3:4,5,3] 返回[3:5] import numpy as np x = np.array([[1,2,3 ...

  8. c语言:将一个二维数组行和列的元素互换,存到另一个二维数组中。

    将一个二维数组行和列的元素互换,存到另一个二维数组中. 解:程序: #include<stdio.h> int main() { int i, j, a[2][3] = { {1,2,3} ...

  9. Java黑皮书课后题第8章:*8.27(列排序)用下面的方法实现一个二维数组中的列排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵

    *8.27(列排序)用下面的方法实现一个二维数组中的列排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...

最新文章

  1. Python 自动化办公之 Excel 拆分并自动发邮件
  2. Pycharm+Django搭建第一个Python Web程序
  3. 解决margin-top没有效果
  4. Android常用ui,XUI: 一个简洁而优雅的Android原生UI框架,解放你的双手!
  5. matplotlib 横坐标少了一个点_比 matplotlib 效率高十倍的数据可视化神器
  6. 关于WinForms的跨显示器DPI自适应
  7. bi power 两个日期挑较早的日期_功率 BI 中的时间智能:利用时间
  8. selenium_java
  9. 什么是Code Review(转)
  10. paip.c#.net 多线程调用控件的问题
  11. RemObjects Remoting SDK-SEO狼术
  12. Opencv学习笔记 超像素分割
  13. Ubuntu 安装显卡驱动
  14. 微信公众号推送模板信息
  15. 娱乐小工具微信小程序源码下载/支持多种流量主
  16. C++继承——以应用抽象类,求圆、圆内接正方形、圆外切正方形的面积和周长为例
  17. 科技人才开发效率的空间杜宾模型分析
  18. Moblin开发手册:理解 Hildon应用程序
  19. args 打印输出argparse.ArgumentParser()的所有选项和默认值
  20. linux需要wifi网络认证,无线802.1x认证简介及配置方法

热门文章

  1. MySql各引擎特点和性能测试
  2. Win64 驱动内核编程-4.内核里操作字符串
  3. hdu4814 模拟(黄金分割进制转换)
  4. 【五线谱】变音记号 ( 升号 # | 降号 b | 重升号 x | 重降号 bb )
  5. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 在 Flutter 端实现 EventChannel 通信 )
  6. 【Android 进程保活】应用进程拉活 ( 账户同步拉活 | 账号添加 | 源码资源 )
  7. 【计算机网络】网络层 : ARP 协议 ( 使用 ARP 协议查找 目的主机 / 路由器 物理地址 )★
  8. 线程中的yield()
  9. python中的decode(编码)和encode(解码)
  10. Kali Day01 --- arpspoof命令进行断网攻击(ARP欺骗)