C++ 数组动态分配
数组的动态内存分配
#include <iostream>
//一维数组
void oneDimensionalArray()
{
//定义一个长度为10的数组
int* array = new int[10];
//赋值
for(int i = 0; i < 10; i++)
{
array[i] = i*2;
}
//打印
for(int i = 0; i < 10; i++)
{
std::cout << i << " : " << array[i] << std::endl;
}
//释放内存
delete[] array;
}
//二维数组
void twoDimensionalArray()
{
//定义一个2*10的二维数组
int** array = new int*[2];
for(int i = 0; i < 2; i++)
{
array[i] = new int[10];
}
//赋值
for(int i = 0; i < 2; i++)
{
for(int j = 0; j < 10; j++)
{
array[i][j] = i*10 + j;
}
}
//打印
for(int i = 0; i < 2; i++)
{
for(int j = 0; j < 10; j++)
{
std::cout << "(" << i << ", " << j << ")" << array[i][j] << std::endl;
}
}
//释放内存
for(int i = 0; i < 2; i++)
{
delete[] array[i];
}
delete[] array;
}
//三维数组
void threeDimensionalArray()
{
//定义一个3*10*20的数组
int*** array = new int** [3];
for(int i = 0; i < 3; i++)
{
array[i] = new int*[10];
for(int j = 0; j < 10; j++)
{
array[i][j] = new int[20];
}
}
//赋值
for (int i = 0; i < 3; i++)
{
for(int j = 0; j < 10; j++)
{
for(int k = 0; k < 20; k++)
{
array[i][j][k] = i*100 + j*10 + k;
}
}
}
//打印
for (int i = 0; i < 3; i++)
{
for(int j = 0; j < 10; j++)
{
for(int k = 0; k < 20; k++)
{
char str[64];
sprintf(str, "(%d, %d, %d): ", i, j, k);
std::cout << str << array[i][j][k] <<std::endl;
}
}
}
//释放内存
for (int i = 0; i < 3; i++)
{
for(int j = 0; j < 10; j++)
{
delete[] array[i][j];
}
}
for (int i = 0; i < 3; i++)
{
delete[] array[i];
}
delete[] array;
}
int main()
{
threeDimensionalArray();
return 0;
}
C++ 数组动态分配的更多相关文章
- c 二维数组动态分配和释放
c动态语言 函数声明的头文件在<stdlib.h>里 使用malloc函数为字符串分配内存 -->记得释放内存 free() #include <stdio.h> #in ...
- 【算法】C语言实现数组的动态分配
C语言实现数组的动态分配 作者:白宁超 2016年10月27日20:13:13 摘要:数据结构和算法对于编程的意义不言而喻,具有指导意义的.无论从事算法优化方向研究,还是大数据处理,亦或者网站开发AP ...
- C++内存分配及变长数组的动态分配
//------------------------------------------------------------------------------------------------ 第 ...
- C++中二维数组的动态分配
C++中二维数组的动态分配 作者: 来源:csdn博客 公布者:admin 时间:2009-04-23 13:55:03 点击:115 C++中一维数组的动态分配十分经常使用,但C++刚開 ...
- 二维数组的动态分配(new)、初始化(memset)和撤销(delete)
来自http://blog.csdn.net/maverick1990/article/details/22829135 一维数组 动态分配,int *array = new int[10] 初始化, ...
- c指针与数组,传参问题,指针数组与数组指针的区别,二维数组动态内存分配
一 数组的结构:顺序存储,看谭浩强中的图,牢记 1.数组名指代一种数据结构:数组 现在可以解释为什么第1个程序第6行的输出为10的问题,根据结论1,数组名str的内涵为一种数据结构,即一个长度为10的 ...
- 【C语言探索之旅】 第二部分第八课:动态分配
内容简介 1.课程大纲 2.第二部分第八课: 动态分配 3.第二部分第九课预告: 实战“悬挂小人”游戏 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言 ...
- mfc 动态分配内存
动态内存分配new 为数组动态分配内存 为多维数组分配内存 释放内存delete malloc free 动态内存分配new int * pi; pi= new int ; 为 ...
- 快速学习C语言一: Hello World
估计不会写C语言的同学也都听过C语言,从头开始快速学一下吧,以后肯定能用的上. 如果使用过其它类C的语言,如JAVA,C#等,学C的语法应该挺快的. 先快速学习并练习一些基本的语言要素,基本类型,表达 ...
随机推荐
- win10 64 位安装 MySQL(mysql-5.7.17-winx64)
版权声明:本文为搜集借鉴各类文章的原创文章,转载请注明出处:http://www.cnblogs.com/2186009311CFF/p/6517470.html. win10 64 位安装 MySQ ...
- 错误: 找不到或无法加载主类 org.sang.BlogserverApplication
错误: 找不到或无法加载主类 org.sang.BlogserverApplication
- mysql INSERT语句 语法
mysql INSERT语句 语法 作用:用于向表格中插入新的行. 语法:INSERT INTO 表名称 VALUES (值1, 值2,....)或者INSERT INTO table_name (列 ...
- SpringBoot整合MongoDb(二)
构建项目及配置 pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</ ...
- 【WINDOWS】设置路由表实现有线内网,无线外网
前提!!! 需要有线无线双网卡
- Laya 爆改Laya IDE和Laya引擎使其支持2D粒子爆发模式
Laya 爆改Laya IDE和Laya引擎使其支持2D粒子爆发模式 @author ixenos 2019-11-01 19:47:26 1. 修改IDE的功能需要深入到/resources/app ...
- 走进JavaWeb技术世界14:Mybatis入门
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- (转)sql server 事务与try catch
本文转载自:http://www.cnblogs.com/sky_Great/archive/2013/01/09/2852417.html sql普通事务 begin transaction tr ...
- tar命令: 解压到指定的目录, 解压并删除原tar文件
-f: 置顶文件名, 后面不能再跟其他选项字母了,必须是文件名, 但是再在这个后面又可以跟 -? 选项: -C: 指定解压到的目的目录 不是-c, 小写的-c是创建. -p保留原来文件的属性. tar ...
- hive三种方式区别和搭建
Hive 中 metastore(元数据存储)的三种方式: a)内嵌 Derby 方式 b)Local 方式 c)Remote 方式 第一种方式 ...