C++ 动态申请数组
#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
int main()
{ int i, j, m, //行数 n; //列数 cout << "input value for m,n:"; cin>>m>>n; //注意下面这一行:vector<int后两个">"之间要有空格!否则会被认为是重载">>"。 vector<vector<int> > vecInt(m, vector<int>(n)); for (i = 0; i < m; i++) for (j = 0; j < n; j++) vecInt[i][j] = i*j; for (i = 0; i < m; i++) { for (j = 0; j < n; j++) cout<<setw(5)<<vecInt[i][j]<<":"<<setw(9)<<&vecInt[i][j]; cout<<endl; } return 0;
}
int main(){//类型定义,将int*指针定义成Rowtypedef int* Row;int row, col;cin >> row >> col;Row* rows = new Row[row];for(int i = 0; i < row; ++i){//有小(),直接将各项初始化为0//rows[i] = new int[col]();rows[i] = new int[col];}for(int i = 0; i < row; ++i){delete [] rows[i];}delete [] rows;}
在C++中为数组动态分配内存的格式如下:第一步:声明type (p)[常量1][常量2]...[常量n];
第二步:申请p=new type[x][常量1][常量2]...[常量n];
说明:先定义一个n维的数组指针,其中p是一个指针变量,x是一个整形变量,然后申请一个第一维为x的n+1维数组,记住只有第一维x可变。
举例:1、动态申请一个一维数组int *p;int x;cin>>x;p=new int[x]; 2、动态申请一个二维整型数组int (*p)[10];int x;cin>>x;p=new int[x][10];若执行这段程序,给x输入3,则相当于定义一个3行10列的一个二维数组。实际是申请3102个存储单元,并把其首地址返回给p,通过p来操纵这个动态数组。3、动态申请一个三维数组int (*p)[8][6];int x;cin>>x;p=new int[x][8][6];注意:1、申请成功与否,看p的值,若p的值为NULL,则说明申请不成功,反之,则申请成功。2、动态申请的存储单元,使用之后应及时返还给系统,方法是:delete p;即可。(new 和 delete 、 new[] 和 delete[] 对应使用)
C++ 动态申请数组相关推荐
- C语言如何使用malloc动态申请数组
前言 写这篇文章是因为在做C语言题目时,发现有时需要设立动态数组才能较好的解决问题,而我所用的vs2019却不支持直接设立,就比如 int n: int a[n]; 这是不被允许的,而且也会出现许多问 ...
- 算法:动态申请数组(new)后将数组所有元素置零(初始化数组)的方法(炒鸡简单)(C++语言)
int *arr = new int [n]();//最后的括号,全置零.for(int i = 0;i<n;i++){cout<<arr[i]<<" &quo ...
- C++二维数组动态申请内存
好久没用C++刷题了,今天早上刷了几条题,感觉很陌生了.怪我,大二下实在太颓废了,没啥作为. 今天更新个关于c++二维数组内存申请的问题,当初作为菜鸟初学指针的时候,还是在这方面有点搞不通的.今天用到 ...
- C语言动态二维数组,结构体动态申请内存空间
在C语言中,申请一般数组时,数组大小必须是常量.即使是赋了特定值的变量,也不行,比如:int n=3;int a[3];这样的做法是错误的,我们需要动态申请数组内存,如下申请一个动态整数(int)二维 ...
- C/C++动态开辟数组【C++:new/delete(推荐):int *arr = new int[m];】【C++:vector】【C:malloc() free()】
一.C++的new/delete(推荐) 1.动态开辟一维数组 #include<iostream> #include<stdio.h>using namespace std; ...
- 编写一个C程序,实现以下功能:动态申请长度为5的整数空间数组,用户输入5个整数;动态扩展数组空间为8,用户另外输入3个整数,最后输出扩展后的全部数组元素。
DGUT最简单的题.没有之一,只要面向GOOGLE和百度编程就行. 在GOOGLE查询malloc和realloc. malloc:动态申请内存. realloc:动态更改(扩展)内存 代码如下 #d ...
- 【C】动态申请二维数组
int ** Get2Array(int n, int m) {if (n < 0 || m < 0)return NULL;int **s = (int **)malloc(sizeof ...
- 用malloc动态申请一个二维数组的三种方法
方法一:利用二级指针申请一个二维数组. #include<stdio.h> #include<stdlib.h> int main() { int **a; //用二级指针动态 ...
- 动态申请二维数组空间及释放
1.动态申请二维数组的空间 int num = 3;int** array = new int*[num];for(int i=0; i<num; ++i) {array[i] = new in ...
最新文章
- 转载 C++实现的委托机制
- SqlServer-COMPUTE BY
- 小明一家过桥_【练习】用python解决小明一家过桥问题
- oracle修改filesystem,oracle数据库 boost::filesystem使用例子
- 淘宝开源代码质量检测工具!(附源码)
- 2019年技术盘点容器篇(三):阿里专家谈容器:既叫好又叫座? | 程序员硬核评测...
- matlab时域频域信号特征提取资料整合
- php解析识别二维码内容
- 数据处理可视化的最有价值的 50 张图 (上)
- python 爬取直播弹幕视频_Python获取B站直播间弹幕信息
- python复制上一行到下一行_eclipse复制当前行到下一行-eclipse复制-eclipse复制一行快捷键...
- 最新windows7旗舰版密钥
- word转PDF图片失真
- snipeit 安装、备份文件恢复
- java鬼吹灯搬山法杖_鬼吹灯昆仑迷宫技能搭配之搬山篇攻略心得
- Apache HBase
- java编译器:必须对其进行捕获或声明以便抛出
- 恶意进程(云查杀)-DDOS木马
- Koomail是什么
- 王艳 201771010127《面向对象程序设计(Java)》第四周学习总结
热门文章
- 这是我的第一个博客,以后遇到问题一起解决
- 【转】揭开Linux的Swap之谜
- Python md5 sha1 的使用
- centos上安装updatedb,command not found
- matlab小游戏源代码下载,3个游戏代码和164个教学源码 - 源码下载|Windows编程|源代码 - 源码中国...
- soapui返回值类型都有哪些_滚珠丝杠的常用类型都有哪些?
- 安装mysql需要配置什么软件_软件配置篇-MySQL下载及安装
- 实现一个基于Vue的Button小组件
- 聊一聊你了解的程序猿是什么样的?
- 学UI设计就业难吗?