线上代码,解析在下方

  1. List item
#include <iostream>
#include <string>
#include <cstring>
#include <iomanip>
using namespace std;int main() {int m = 4, n = 5;//处理一个m行n列的二维整型数组int * *p = new int *[m];//申请吗个元素,每个元素是int *类型的内存空间for (int i = 0; i < m; i++)p[i] = new int [n];//p数组的每个元素p[i]都是指针for (int j = 0; j < m; j++)//指向n个int 类型的内存空间首地址for (int i = 0; i < n; i++)p[j][i] = j * i;//给元素赋值for (int j = 0; j < m; j++) {for (int i = 0; i < n; i++)cout << setw(3) << left << p[j][i];//访问元素cout << endl;}for (int i = 0; i < m; i++)delete []p[i];//释放内存delete []p;return 0;
}

程序运行结果如图所示

一个m行n列的整型二维数组可以看作由m个一维数组组成,每个一维数组有n个整型元素。
其基本思路是,为每一行数组申请一段内存空间( new int[n],Line10),保存申请到的这段内存空间的首地址(int *类型),一共有m行,把这m个地址存储到一个int类型的数组中。显然,这需要为该数组申请m个元素,每个元素都是int*类型( new int[m],Line7)。其具体实现时的顺序是:先申请一段内存空间存储m个int类型的元素用指针变量p存储这段空间的首地址(Line7);然后依次申请m个一维数组的内存空间(用Line8的for循环实现),用数组p的元素p[i]存储申请到的内存空间的首地址(Line10)。而释放内存的顺序与申请内存的顺序恰好相反:先释放每一行的内存(Line29),然后释放存储每行首地址的内存(Line31)。另外,在例2-5中使用了setw(和left,用于控制数据的输出格式。setw(3)是指定数据的域宽为3,即每个数都占3列,不足3位的数前补空格,超过3位的数按实际数位输出;left的作用是指定数据输出时在域内左对齐,当输出的数字不足3位时在数字的后面(右面)补空格。使用格式控制符需要包含头文件< iomanip>[在这里插入图片描述](https://img-blog.csdnimg.cn/20210122105431892.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODM4NjA3,size_16,color_FFFFFF,t_70)希望对大家有帮助呀!

C++中使用new和delete运算符实现二维数组的操作相关推荐

  1. c语言二维数组中的周边,【C语言】二维数组中的查找,杨氏矩阵

    //二维数组中的查找,杨氏矩阵 //在一个二维数组中,每行都依照从左到右的递增的顺序排序.每列都依照从上到下递增的顺序排序. //请完毕一个函数.输入这种一个数组和一个数,推断数组中是否包括这个数. ...

  2. 算法013:二维数组中的查找-在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断中是否存在

    题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.示例: 现有 ...

  3. matlab二维怎么定义,matlab中如何定义一个10*2的二维数组,用来储存后面算出的数值...

    答:可以先定义,这样可以预先分配空间,B = zeros(20, 2); 也可以运算出一个结果往数组里增添1列,动态来增加. matlab二维数组的创建: 二维数组实际上也是一个矩阵.应此直接创建一个 ...

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

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

  5. 剑指offer:面试题04. 二维数组中的查找

    题目:二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该 ...

  6. python 二维数组长度_剑指offer二维数组中的查找【Java+Python】

    点击上方"蓝字",关注了解更多 二维数组中的查找 1. 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序 ...

  7. 隔一段时间查找一次 golang_剑指 offer-04 二维数组中的查找

    算法名称:二维数组中的查找 题目内容:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...

  8. 使用fstream在C++工程中读取文件到二维数组

    首先为类CCalculateCenterDlg定义一个较大的二维数组成员m_DataArry[100][100],实际读取数据中存放在该数组中,但是肯定用不完该数组的所有空间,实际使用的数组长度和宽度 ...

  9. 二维数组的空间复杂度_剑指 offer 面试题精选图解 04 . 二维数组中的查找

    点击关注上方"图解面试算法", 设为"置顶或星标",一起刷 LeetCode. 作者:程序员吴师兄 今天分享的题目来源于 LeetCode 上的剑指 Offer ...

最新文章

  1. JAVA-初步认识-第十一章-object类-equals方法覆盖
  2. flexbox布局的兼容性
  3. 【Whalepaper】CV论文研读 - OneNet:Towards End-to-End One-Stage Object Detection
  4. 【转】Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04
  5. image.open()得到的图片是什么类型_500G图片1秒压缩成200M,这个方法也太逆天了吧!完全免费...
  6. drone + gogs 构建CI/CD
  7. linux mysql 端口配置文件_Linux配置测试环境,部署项目(指定端口,数据库连接)...
  8. python中ls是什么_使用Python代码实现Linux中的ls遍历目录命令的实例代码
  9. pulsar学习笔记1:helloworld
  10. c:forTokens
  11. Repeater双重绑定(子菜单前台代码:)
  12. 20、淘宝技术这十年
  13. C++ 如何有效地使用对话框
  14. [C/C++]标准MIDI文件格式
  15. jeecms9自定义标签以及使用新创建的数据库表
  16. 周鸿祎:很多人不缺情商智商但缺“胆商”
  17. 【Unity】打包时异常 HideFlages.DontSave
  18. 电路中的基础元件-无源晶振详谈
  19. 插件和依赖有什么区别?
  20. 个人密码解决方案(草稿)

热门文章

  1. 接受java的返回值_java怎样接受 到return的值的?
  2. VS(visual studio)如何查看预处理后的文件?(查看宏定义展开,头文件展开等)(注意如果要运行或调试代码,要把第一步的改回来!!!!)
  3. tensorflow教程 开发者指南——评估器 estimator(tensorflow官方推荐使用的编程API)
  4. Intel Realsense D435 Tensorlfow-yolov3 测试摄像头识别坐标转换成实际空间坐标的准确程度
  5. python 文件操作 os 如何检索文件夹内文件数量
  6. python matplotlab.pyplot.axis()函数的用法
  7. w ndows10应用商店游,来了,微软Win10应用商店开发者95%分成开始生效
  8. redhat php5 安装,完整的linux(RedHat)+php5.3.10+mysql5.5.19+apache2.2.22安装配置说明
  9. vivadohlsdsp_Vivado HLS学习笔记
  10. 我们:待别日相见时,我们都已有所成。挥手向2021告别吧,追求梦想的路上,永远不孤独「2021 年终总结 」