两种方式。

一,二级指针,创建2行3列的动态二维数组。

这里,p指向的是2个地址,这两个地址各指向长度为3的一维整型数组。

在内存中,每行元素内部顺序排列。两行元素的首地址不同,p[1]与p[2]存放于不同空间。

int **p=new int*[2];

for(int i=0;i<2;i++){

p[i]=new int[3];

}

每个元素取法:*(*(p+i)+j).

二,数组指针的方式创建,(比二级指针的方式少了一级地址的存储空间)。

int (*p)[3]=new int [2][3];

所有元素按行顺序存储,存放于一片连续的空间。

每个元素取法:(方法1)p[i][j] ,因为连续存储,i,j相对首地址的偏移量不超过元素总数即可,p[0][4]是正确的。

或者(方法2)  *(*(p+i)+j),因为此时p指向的空间是按数组单位来划分的。.

C++动态二维数组的创建的更多相关文章

  1. C语言批量数据到动态二维数组

    上一篇文章将文件读取放到静态创建的二维数组中,可是结合网络上感觉到今天的DT时代,这样批量大量读取一个上百行的数据,分配的内存是否可能由于大量的数据而产生溢出呢,近期一直研究里malloc函数.通过它 ...

  2. C++ 里 构建动态二维数组

    //****动态二维数组 /* int m=3; int **data; int n=2; data=new int*[m]; for(int j=0;j<m;j++) { data[j]=ne ...

  3. C++建立动态二维数组

    C++建立动态二维数组主要有两种方法: 1.使用数组指针,分配一个指针数组,将其首地址保存在b中,然后再为指针数组的每个元素分配一个数组                           int * ...

  4. 动态二维数组赋值及for循环遍历和toString遍历

    package com.Summer_0421.cn; import java.util.Arrays; /** * @author Summer * 动态二维数组赋值及for循环遍历和toStrin ...

  5. 以杨辉三角为例,从内存角度简单分析C语言中的动态二维数组

    学C语言,一定绕不过指针这一大难关,而指针最让人头疼的就是各种指向关系,一阶的指针还比较容易掌握,但一旦阶数一高,就很容易理不清楚其中的指向关系,现在我将通过杨辉三角为例,我会用四种方法从内存的角度简 ...

  6. 【C/C++】vector 动态二维数组

    声明 vector<vector<int> vec; //赋值思路可以从这个很基础的操作里看出来 vector<int> a; a.push_back(1); a.pus ...

  7. C/C++动态二维数组的内存分配和释放

    C语言: 1 //二维数组动态数组分配和释放 //数组指针的内存分配和释放 //方法一 char (*a)[N];//指向数组的指针 a = (char (*)[N])malloc(sizeof(ch ...

  8. python二维数组的创建

    话不多说,代码伺候 m = [[]*]*3 #创建一个3行5列的二维数组 m[][]= print(m) 输出结果为: 分析: m = [[0]*5]*3只是指向三个空列表的引用. 创建一个二维数组的 ...

  9. C++ 用 new 生成一个动态二维数组

    //Microsoft Visual Studio 2015 Enterprise //变长二维数组 #include <iostream> #include<iomanip> ...

随机推荐

  1. hdu 5443 The Water Problem 线段树

    The Water Problem Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...

  2. JSON数据格式以及与后台交互数据转换实例

    /* 作者:烟大阳仔 时间:20131013 介绍:主要了解一下json的格式,看看数据是怎么存储的 */ <!DOCTYPE html PUBLIC "-//W3C//DTD HTM ...

  3. java nio 抛出NonWritableChannelException异常

    抛出异常的代码在此处: MappedByteBuffer buffer = channel.map(MapMode.READ_WRITE, 0, avalible); 其中channel是一个file ...

  4. C 栈顺序存储

    // seqstack.h #ifndef _MY_SEQSTACK_H_ #define _MY_SEQSTACK_H_ typedef void SeqStack; SeqStack* SeqSt ...

  5. tar备份系统

    一.概述 前几天我通过SSH正在调戏汤姆猫(tomcat)的时候,服务器上CentOS突然挂了.开机grub,使用光盘linux rescue修复提示找不到linux分区,然后想mount硬盘备份系统 ...

  6. 深入学习block

    首先,什么是block?block其实就是一个代码块,把你想要执行的代码封装在这个代码块里,等到需要的时候再去调用.那block是OC对象吗?答案是肯定的. 做一道很简单的关于block的测试题: i ...

  7. Android View的绘制机制流程深入详解(三)

    本系列文章主要着重深入介绍Android View的绘制机制及流程,第三篇主要介绍并分析视图状态以及重绘流程,首先剖析了 视图的几种状态,然后在深入分析视图的重绘机制流程. 真题园网:http://w ...

  8. Java基础知识强化之IO流笔记70:Properties练习之 如何让猜数字小游戏只能玩5次的案例

    1. 使用Properties完成猜数字小游戏只能玩5次的案例: 2. 代码实现: (1)猜数字游戏GuessNumber: package cn.itcast_08; import java.uti ...

  9. Java基础知识强化之IO流笔记64:合并流SequenceInputStream

    1. SequenceInputStream合并流的概述: SequenceInputStream类可以将多个输入流串联在一起,合并为一个输入流,因此,该流也被称为合并流.   2. Sequence ...

  10. android开发之路04(初级android工程师必会,你懂得!)

    Android初级Android工程师重点掌握内容如下: 1.Android开发基础: ①UI界面设计: ②SQLite数据库: ③android四大组件: ④android网络编程: ⑤androi ...