js 多维数组长度_C++申请与释放动态数组1(学习笔记:第6章 16)
分配和释放动态数组[1]
- 分配:
new 类型名T [ 数组长度 ]
数组长度可以是任何表达式,在运行时计算
- 释放:delete[] 数组名p
释放指针p所指向的数组。
p必须是用new分配得到的数组首地址。
例6-17 动态创建对象数组举例
#include <iostream>
using namespace std;
class Point {public:Point() : x(0), y(0) {cout << "Default Constructor called." << endl;}Point(int x, int y) : x(x), y(y) {cout << "Constructor called." << endl;}~Point() { cout << "Destructor called." << endl; }int getX() const { return x; }int getY() const { return y; }void move(int newX, int newY) {x = newX;y = newY;}
private:int x, y;
};
int main() {Point *ptr = new Point[2]; //创建对象数组ptr[0].move(5, 10); //通过指针访问数组元素的成员ptr[1].move(15, 20); //通过指针访问数组元素的成员cout << "Deleting..." << endl;delete[] ptr; //删除整个对象数组return 0;
}
本例中delete[] ptr;写方括号它才释放两个对象,看到两个destructor被调用两次。如果不写方括号,它只释放一个对象,那么另外一个内存就泄漏了。程序报错情况如下图所示:
动态创建多维数组
new 类型名T[第1维长度][第2维长度]…;
- 如果内存申请成功,new运算返回一个指向新分配内存首地址的指针。
例如:
char (*fp)[3];
fp = new char[2][3];
//或
char (*fp)[3] = new char[2][3];
例6-19 动态创建多维数组
#include <iostream>
using namespace std;
int main() {int(*cp)[9][8] = new int[7][9][8];//赋值for (int i = 0; i < 7; i++)for (int j = 0; j < 9; j++)for (int k = 0; k < 8; k++)*(*(*(cp + i) + j) + k) = (i * 100 + j * 10 + k);//输出到控制台for (int i = 0; i < 7; i++) {for (int j = 0; j < 9; j++) {for (int k = 0; k < 8; k++){cout << cp[i][j][k] << " ";} cout << endl;}cout << endl; }delete[] cp;return 0;
}
参考
- ^http://www.xuetangx.com/courses/course-v1:TsinghuaX+00740043X_2015_T2+sp/courseware/d4eb7d174ba04a4da6282bcae197892c/3ddce3f3dcb74818b6460b6d94795bad/
js 多维数组长度_C++申请与释放动态数组1(学习笔记:第6章 16)相关推荐
- c语言整形数组长度_c语言中如何求数组长度
展开全部 1.c语言中,e5a48de588b63231313335323631343130323136353331333337613861定义数组后可以用sizeof命令获得数组的长度(可容纳元素个 ...
- c++ 一维数组长度_每天一点C / 一维数组和指针
哈喽,我是老吴,继续记录我的学习心得. 每天一点系列是我对微习惯的践行.现在能做到每天一点 C,将来就会有更多的每天一点系列,没人规定嵌入式软件工程师就只能学习 C 语言和折腾 Linux,不要给自己 ...
- Java 解决数组长度不可变问题 Java 重新定义数组
// 解决数组长度不可变的问题 // 因为数组在定义的时候已经给定了长度,所以如果有新的元素加入,数组的本身已经放不下了 // 这时候就需要重新将原数组的元素拿出来重新定义数组,将旧元素和新元素重新赋 ...
- asp数组中REDIM的用法(动态数组)
asp数组中REDIM的用法(动态数组) 动态数组里面的一个语句,只能出现在过程里面,可以多次使用.可以改变数组大小,和维数 格式: REDIM [Preserve] 数组名(下标1[下标2....] ...
- delphi 获取数组长度_C++可变长的数组,老司机手把手教你实现!
01 实现自定义的可变长数组类型 假设我们要实现一个会自动扩展的数组,要实现什么函数呢?先从下面的main函数给出的实现,看看有什么函数是需要我们实现的. int main(){ MyArray a; ...
- c语言整形数组长度_C语言获取数组长度的几种方法
如何通过编程的手段获取某个数组的长度呢? 答案是使用关键字 sizeof. 前面说过,用 sizeof 可以获得数据类型或变量在内存中所占的字节数.同样,用 sizeof 也可以获得整个数组在内存中所 ...
- java 数组下标和值的关系_java数组长度可以改变吗?与数组下标有何异同?
大家了解什么是数组长度吗?什么是数组下标吗?经常有人将这两个词混淆,今天呢,小编给小伙伴们带来了有关数组的相关知识,就让我们一起了解了解吧. 有的人说数组是可以改变,有的人说数组是不可以.然而我在使用 ...
- java两个长度不同数组_两组数组,长度不一样,如果其中一个数组的值在另一个中不存在,则不符合要求.怎么算?...
思路一 先找到最长的数组,然后循环短的数组并判断元素是否在长数组中 public class Main { public static void main(String[] args) throws ...
- python中对比数组长度_在Python中检索数组长度的首选方法
python中对比数组长度 The __len__() is a method on container types. However, python also provides another op ...
最新文章
- 个人技术生涯的感悟(2)
- PspCidTable 完全解读
- 【深度学习】基于Pytorch的线性模型概念辨析和实现(二)
- DJFP2FP2计算机电缆,ZR-DJFP2FP2-22 (ZR-DJFP2FP2-22计算机电缆)(百勤石油)
- android fota解决方案,Android智能终端FOTA方案的制作方法
- wps表格在拟合曲线找点_excel拟合曲线函数表达式,excel散点拟合出来的公式看不懂。请问怎么写入表格使用?...
- 蒟蒻刷洛谷(11月7日到11月13日)
- BOF算法 基于SIFT+KMeans
- 笔记 绝望主妇第1季第2章 --- desperate housewives session 1 episode 2
- ”什么?穆冉不敢相信地看向穆大海
- java md5类_java的md5加密类
- vue实现echarts词云图业务【详细配置版】
- winSCP 集成PuTTY附下载
- Codeforces 14E Camels (DP)
- 工业虚拟现实解决方案
- python中的arange函数,Python中的arange是什么?和range有什么不同?
- 使用命令行统计代码行数
- 十月总结分享(剪贴板)
- C语言英文背单词软件,C语言背单词程序
- 助理电子商务师html,助理电子商务师考试HTML相关试题汇总.doc