当前位置: 首页 > news >正文

多维数组的动态内存分配(malloc和new)

一.区别指针类型

动态分配二维数组的内存不要赋值给行指针,而要赋值给二级指针。

二.分配动态二维数组的方法

  • 1.使用指针数组

    然后对指针数组的每一个元素分别malloc一维数组
  • 2.直接使用malloc

// 分配了一个指针数组,row为二维数组行数
int **p = (int**)malloc(row * sizeof(int*));// 每一行指向一个一维数组
for(int i = 0 ; i < row ; i++){p[i] = (int*)malloc(n * sizeof(int));
}
  • 3.使用new

int **p = new int*[row];for(int i = 0 ; i < row ; i++){p[i] = new int[n];
}

三. 高维数组分配

以三维数组为例

int ***p = malloc(floor * sizeof(int **)); // 共有floor层二维数组for(int i = 0 ; i < floor; i++){ // 每层的二维有row行p[i] = (int**)malloc(row * sizeof(int*));
}for(int i = 0 ; i < floor ; i++){ // 二维数组每行有n列for(int j = 0 ; j < row; i++){p[i][j] = (int*)malloc(n * sizeof(int));}
}
int ***p = new int**[floor];for(int i = 0 ; i < floor; i++){p[i] = new int*[row];
}for(int i = 0 ; i < floor ; i++){for(int j = 0 ; j < row; i++){p[i][j] = new int[n];}
}
http://www.lryc.cn/news/361017.html

相关文章:

  • 71、评测OrangePi AIpro开发板和USB CAMERAOAK视频解码+推理+编码+推流测试
  • 为什么需要开局调用函数?
  • QT-demo:0轴分布图表
  • git远程仓库限额的解决方法——大文件瘦身
  • 碰撞检测技术在AI中的重要作用
  • UE5 Cesium2 最新使用地理配准子关卡构造全球场景
  • 【Java数据结构】详解LinkedList与链表(二)
  • 【精读文献】J. Environ. Manage.|青藏高原生态恢复项目下植被覆盖动态及其对生态系统服务的约束效应
  • QT之常用控件
  • 【嵌入式硬件】DRV8874电机驱动
  • 考研数学:有些无穷小不能用等价无穷小的公式?
  • 谷歌浏览器的平替,内置开挂神器,我已爱不释手!
  • UMLChina为什么叒要翻译《分析模式》?
  • npm install 安装很慢如何解决?
  • 哈夫曼树的构造,哈夫曼树的存在意义--求哈夫曼编码
  • 一个全面了解Xilinx FPGA IP核的窗口:《Xilinx系列FPGA芯片IP核详解》(可下载)
  • virtualbox识别windows上usb设备
  • LabVIEW步进电机的串口控制方法与实现
  • 云计算-高级云资源配置(Advanced Cloud Provisioning)
  • Nginx企业级负载均衡:技术详解系列(17)—— 长连接优化策略与下载服务器高效搭建
  • LabVIEW如何确保步进电机的长期稳定运行
  • vue2 bug 小白求助!!!(未解决,大概是浏览器缓存的问题或者是路由的问题)
  • 上海云管平台怎么样?客服电话多少?
  • c++程序员为什么要做自己的底层库
  • 堆排序-java
  • Android MIPI屏配置
  • C#面:.Net、ASP.Net、C#、VisualStudio之间的关系是什么
  • OpenMV学习笔记3——画图函数汇总
  • 【大模型应用开发极简入门】构建新闻稿生成器:提示词的使用与基于事实的提示词
  • JAVA和爬虫,那个值得学习