C++动态开辟二维数组的方法详解
创作时间:
作者:
@小白创作中心
C++动态开辟二维数组的方法详解
引用
1
来源
1.
https://cloud.tencent.com/developer/article/2043121
本文介绍了C++中动态开辟二维数组的方法,通过对比C和C++两种语言的实现方式,详细解释了动态二维数组的内存分配和释放过程,并提供了完整的代码示例。
C方式实现
在C语言中,动态开辟二维数组需要使用指针和malloc函数。以下是一个具体的实现示例:
#include <iostream>
using namespace std;
#define ROW 3
#define COL 4
void main()
{
int **p = (int **)malloc(sizeof(int*)*ROW);
for(int i=0; i<ROW; ++i)
{
p[i] = (int *)malloc(sizeof(int) * COL);
}
for(i=0; i<ROW; ++i)
{
for(int j=0; j<COL; ++j)
{
p[i][j] = i+j;
}
}
for(i=0; i<ROW; ++i)
{
for(int j=0; j<COL; ++j)
{
cout<<p[i][j]<<" ";
}
cout<<endl;
}
for(i=0; i<ROW; ++i)
{
free(p[i]); //delete []p[i]
}
free(p); //delete []p;
}
C++方式实现
在C++中,动态开辟二维数组可以使用指针和new运算符。这里采用列优先的方式进行内存分配:
#include<iostream>
using namespace std;
#define ROW 3
#define COL 4
void main()
{
int(*p)[COL] = new int[ROW][COL];
for(int i=0; i<ROW; ++i)
{
for(int j=0; j<COL; ++j)
{
p[i][j] = i+j;
}
}
for(i=0; i<ROW; ++i)
{
for(int j=0; j<COL; ++j)
{
cout<<p[i][j]<<" ";
}
cout<<endl;
}
delete []p;
}
通过对比C和C++的实现方式,可以看出C++提供了更简洁的语法来处理动态内存分配,使得代码更加清晰易读。
热门推荐
青岛蝴蝶楼:一座见证中国电影百年芳华的建筑
国保单位蝴蝶楼:一只展翅欲飞的建筑奇葩
珠海最新摄影打卡点大揭秘!28个绝美取景地等你来拍
春风比喻句:让你的文字更生动!
古诗词里的春风:诗意与变迁
黄鹤楼:李白的送别与崔颢的乡愁
中秋国庆必打卡!黄鹤楼最美拍照指南
黄鹤楼:李白诗中的离别文化
硫磺皂祛痘大法,你用对了吗?
银行转账怎么撤回
春节档必看!《哪吒2》国漫炸裂来袭
人民网研究院发布《2024年度服务消费热点趋势观察报告》
苏州,要有苏州的味道
失眠成了难题,如何打造一个良好的睡眠环境?
不同睡姿下枕头高度该如何选择?
学习小提琴需要掌握的练琴方法
海菲茨、米尔斯坦、梅纽因......这是你必须要了解的六位小提琴大师!
临夏八坊十三巷:探寻古韵与现代交融之美
临夏蝴蝶楼:一只展翅欲飞的建筑瑰宝
适合求婚唱的歌曲有哪些
结婚歌曲有哪些好听?如何选择婚礼上的经典曲目?
邯郸秋冬游:打卡娲皇宫、响堂山石窟和广府古城!
科技赋能古建保护,邯郸千年文化展新颜
邯郸道历史文化街区:穿越三千年古韵之旅
探访邯郸:武灵丛台与广府古城的文化之旅
诗词中的中医药:文人墨客的养生之道
生活没有诗与远方,诗词极少风花雪月,杜甫4首古诗,首首有深意
秋意浓情寄情怀——探索杜甫《秋兴八首》的诗意与人文精神
杜甫《登高》:万里悲秋常作客,百年多病独登台
Cell杂志50周年专刊:揭秘新冠病毒跨种传播的真相