来自http://blog.csdn.net/maverick1990/article/details/22829135

一维数组

动态分配,int *array = new int[10]

初始化,memset(array,0,sizeof(int)*10);

撤销,delete[] array

二维数组m行n列

int **d;
d = new int *[];
for(int i =;i<;i++){
d[i] = new int[]
}

先分配一个10单元的数组指针的指针的首地址给**d,然后对其每个首地址进行遍历,

完成一个5单元的数组的动态分配,并把首地址给*d[i],最后完成d[10][5]的动态分配。

怎么初始化二维数组?

void memset(void* dest,int c,size_t count)////

sets buffers to a specified character.

memset只能作用于一个一维数组的void *dest,因此最好的方法就是和二维数组的动态分配,

memset最好用来初始化数组为零,初始化bool数组

结合起来,new一个,memset一个。

例如:

int **d;
d = new int *[];
for(int i = ;i<;i++){
d[i] = new int[];
memset(d[i],,*sizeof(int));///当sizeof一个指针时,返回值为指针本身的大小而不是指针指向区域的大小,
      ///所以第三个要明确空间大小,不能sizeof(d[i]).
}

如何撤销?

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

delete[] a[i];

}

delete[] a;

=========================

来个例子,

class A{
public:
void test_memset(){
///============
int *d;
d = new int[];
memset(d,-,sizeof(int)*);
for(int i = ;i<;i++){
cout<<d[i]<<" ";
}cout<<endl;
delete[] d;
///==============
int **a;
a = new int*[];
for(int i = ;i<;i++){
a[i] = new int[];
memset(a[i],-,sizeof(int)*);
}
for(int i = ;i<;i++){
for(int j = ;j<;j++){
cout<<a[i][j]<<" ";
}cout<<endl;
}
for(int i = ;i<;i++){
delete[] a[i];
}
delete[] a; ///====================
int ***c;
c = new int**[];
for(int i = ;i<;i++){
c[i] = new int*[];
for(int j = ;j<;j++){
c[i][j] = new int[];
memset(c[i][j],-,sizeof(int)*);
}
} for(int i = ;i<;i++){
for(int j = ;j<;j++){
for(int k = ;k<;k++){
cout<<"i-j-k"<<i<<j<<k<<"~"<<c[i][j][k]<<" ";
}cout<<endl;
}cout<<endl<<endl;
}
///=========== for(int i = ;i<;i++){
for(int j = ;j<;j++){
delete[] c[i][j];
}
delete[] c[i];
}
delete[] c;
cout<<"destoryed done!"<<endl;
}
};

二维数组的动态分配(new)、初始化(memset)和撤销(delete)的更多相关文章

  1. C++二维数组讲解、二维数组的声明和初始化

    我们知道,一维空间是一条线,数学中用一条数轴来表达:二维空间是一个平面,数学中用平面坐标系来表达.那么二维数组又是什么样的呢? 线与面 我们用一个下标来描述一维数组中的某个元素,就好像在用数描述一条线 ...

  2. [zt]C++二维数组讲解、二维数组的声明和初始化

    定义: int *pia = new int[10]; // array of 10 uninitialized ints 此 new 表达式分配了一个含有 10 个 int 型元素的数组,并返回指向 ...

  3. 关于c语言二维数组与指针的个人理解及处理办法。

    相信大家在学习C语言时,对一维数组和指针的理解应该是自信的,但是,我在学习过程中,看到网上一些博文,发现即便是参加工作的一些专业编程人员,突然碰到二维数组和指针的问题时,也可能会遇到难以处理的诡异问题 ...

  4. C指针 指针和数组 二维数组的指针 指针应用

    直接到变量名标识的存储单元中读取变量的值--直接寻址 通过其他变量间接找到变量的地址读取变量的值--间接寻址 指针变量存放地址 显示变量的地址 指针变量使用前必须初始化,若不知指向哪,可先指向NULL ...

  5. JS的二维数组

    今天,记录一下JS的二位数组,并附上例题. 一.二维数组的本质:数组中的元素又是数组. 其实,我们都见过这样的二维数组,只不过没在意罢了,例如: var arr = [[1,2,4,6],[2,4,7 ...

  6. c++用vector创建二维数组

    1 vector二维数组的创建和初始化 std::vector <int> vec(10,90); //将10个一维动态数组初始为90std::vector<std::vector& ...

  7. Java编程基础阶段笔记 day06 二维数组

    二维数组 笔记Notes 二维数组 二维数组声明 二维数组静态初始化与二位初始化 二维数组元素赋值与获取 二维数组遍历 二维数组内存解析 打印杨辉三角 Arrays工具类 数组中常见的异常 二维数组 ...

  8. C#学习笔记04--排序/查找/二维数组/交叉数组

    一. 冒泡排序(重点) 思路:  每次比较把较小的放在前面, 大的放到后面; 图解:下图是最坏情况下的排序 ` 冒泡排序m个元素, 就有(m-1)趟排序, 第一趟m-1次, 第二趟 m-2次....  ...

  9. C++二维数组(指针)做参数

    一.问题描述 使用C++编程过程中经常需要使用到二维数组,然而初级程序员在使用过程中经常会出错使程序崩溃.下面就二维指针的定义,初始化,以及二维指针做参数给出简单介绍. 1.二维数组的定义与初始化 在 ...

随机推荐

  1. JS中的异常exception

    js提供了一套异常处理机制.异常是干扰程序的正常流程的不寻常事故,当发生这样的事故时,你的程序应该抛出一个异常 try_it() { try { console.log(add("1&quo ...

  2. 用TextKit实现表情混排

      Textkit是iOS7新推出的类库,其实是在之前推出的CoreText上的封装,有了这个TextKit,以后不用再拿着CoreText来做累活了,根据苹果的说法,他们开发了两年多才完成,而且他们 ...

  3. IOS UIButton常用属性

    //1.添加按钮 UIButton *nameView=[UIButton buttonWithType:UIButtonTypeCustom]; //nameView.backgroundColor ...

  4. 访问虚拟机中web服务的

    经常发现假如我们想弄一点小玩意或跑一些小demo,总是要不断的在自己的工作本本上搭建不同的运行环境,久而久之,本本上充斥着各种软件,速度下降了,同时管理也非常的不方便.于是想到用虚拟机来搭建运行环境, ...

  5. Java十进制转成二进制 八进制 十六进制

    int a = 357;//十进制转成二进制System.out.println(Integer.toBinaryString(a)); package com.swift; import java. ...

  6. JavaScript中的match方法和search方法

    search在一个字串对象(string object)中查找关键词字串(规范表达式,regular expression),若匹配(即在目标字串中成功找到关键词)则返回关键词在目标字串中第一次出现的 ...

  7. vue项目跨域问题

    跨域 了解同源政策:所谓"同源"指的是"三个相同". 协议相同 域名相同 端口相同 解决跨域 jsonp 缺点:只能get请求 ,需要修改B网站的代码 cors ...

  8. Mysql的一些纪要

    unsigned 整型的每一种都分无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如 ...

  9. 小象学院Python数据分析第二期【升级版】

    点击了解更多Python课程>>> 小象学院Python数据分析第二期[升级版] 主讲老师: 梁斌 资深算法工程师 查尔斯特大学(Charles Sturt University)计 ...

  10. ASP.NET 自定义路由 RouteBase

    适用场景:当前项目有一个接口:http://xxx.com/a.aspx,现在我们在不需要a.aspx这个文件的,直接处理这个地址的请求,我们可以做很多的事情,比如,直接返回一个静态的JSON文件内容 ...