动态创建和释放二维数组
来源:互联网 发布:python 聚合搜索 编辑:程序博客网 时间:2024/05/17 07:30
C动态创建和释放二维数组
#include<stdio.h>#include<stdlib.h>#define ROW 5#define COL 4main(){int i;int **arr;arr=(int **)malloc(ROW*sizeof(int*));for(i=0;i<ROW;++i)arr[i]=(int*)malloc(COL*sizeof(int));printf("%d\n",arr[ROW-1][COL-1]);for(i=0;i<ROW;++i)free(arr[i]);free(arr);}
使用calloc申请内存时,内存会清0,而malloc并不进行这项工作,所以打印数组元素时得到的随机值。
可以用valgrind工具验证确实没有发生内存泄露:
valgrind --tool=memcheck --leak-check=full ./exefile
但是有errors:
就是因为我们没有给arr[ROW-1][COL-1]赋值就是读取其内容。
C++动态创建和释放二维数组
#include<iostream>using namespace std;const int ROW=5;const int COL=4;int main(){int **arr=new int *[ROW];for(int i=0;i<ROW;++i)arr[i]=new int[COL]();cout<<arr[ROW-1][COL-1]<<endl;for(int i=0;i<ROW;++i)delete [] arr[i];delete [] arr;return 0;}
注意第10行末尾的圆括号,它表示分配内存时同时初始化(int型就初始化为0)。不加圆括号则没有进行初始化。
没有内存泄露,没有errors:
- 动态创建和释放二维数组
- 动态创建和释放二维数组
- 二维数组的动态创建和释放
- 数据结构-C++描述:动态创建和释放一个二维数组
- C++ 二维数组动态创建和内存释放
- C++\V动态创建和释放二维数组
- c++动态二维数组创建与释放!
- 动态二维数组的分配和释放
- c++动态开辟和释放二维数组
- 动态二维数组的分配和释放
- 动态申请和释放一个二维数组
- C++版一维数组和二维数组的动态创建与释放
- 继续我的c++语法,,,二维数组的动态创建和释放
- C/C++中动态创建和释放二维数组的两种办法
- c/c++ 动态创建与释放二维数组
- C语言二维数组动态创建与释放
- 二维数组和动态创建数组
- 动态创建和释放三维数组
- 从文件中查找单词
- Arithmetic Encoding(压缩算法)
- 拓扑排序
- Linux常用命令
- 全局变量用常量初始化----C和C++的不同
- 动态创建和释放二维数组
- Oracle 10g 物理Dataguard日常操作维护(二)
- Linux下利用多线程实现矩阵相乘的并行计算
- 动态规划--买书怎么组合花钱最少
- 调用Google API做自己的翻译工具
- 最大流
- 最短路径
- 并行计算圆周率
- Windows下通过Cygwin使用OpenSSh