详解C语言用malloc函数申请二维动态数组的两个实例
2018-01-02 14:01
309 查看
C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单。#include <stdio.h>
int main()
{
char * p=(char *)malloc(sizeof(char)*5);//申请包含5个字符型的数组
free(p);
return 0;
} 申请二维数组
#include <stdlib.h>
#include <malloc.h>
#define m 3 /* row */
#define n 4 /* column */
int **creat2d(int mm,int nn);//声明一下子函数
void main()
{
int i,j;
int **s;
s=creat2d(m,n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
s[i][j]=i*2+j;//s当做二维数组使用
printf("s[%d][%d]=%d ",i,j,s[i][j]);
}
printf("\n");
}
for(i=0;i<m;i++)//先free掉m个行指针
{
free(s[i]);
s[i]=NULL;//free之后要置为null,防止野指针
}
free(s);
s=NULL;//防止野指针
}
int **creat2d(int mm,int nn)
{
int **a;
int j;
a=(int**)malloc(sizeof(int*)*mm);//mm个行
for(j=0;j<mm;j++)
a[j]=(int*)malloc(sizeof(int)*nn);//每行nn个数
return a;
}
int main()
{
char * p=(char *)malloc(sizeof(char)*5);//申请包含5个字符型的数组
free(p);
return 0;
} 申请二维数组
/* 申请一个5行3列的字符型数组*/ char **p=NULL;int i; p=(char ** )malloc(sizeof(char *)*5); for(i=0;i<5;i++) p[i]=malloc(sizeof(char)*3); /*释放内存*/ for(i=0;i<5;i++) free(p[i]); free(p);二维动态数组用函数创建的实例#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define m 3 /* row */
#define n 4 /* column */
int **creat2d(int mm,int nn);//声明一下子函数
void main()
{
int i,j;
int **s;
s=creat2d(m,n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
s[i][j]=i*2+j;//s当做二维数组使用
printf("s[%d][%d]=%d ",i,j,s[i][j]);
}
printf("\n");
}
for(i=0;i<m;i++)//先free掉m个行指针
{
free(s[i]);
s[i]=NULL;//free之后要置为null,防止野指针
}
free(s);
s=NULL;//防止野指针
}
int **creat2d(int mm,int nn)
{
int **a;
int j;
a=(int**)malloc(sizeof(int*)*mm);//mm个行
for(j=0;j<mm;j++)
a[j]=(int*)malloc(sizeof(int)*nn);//每行nn个数
return a;
}
相关文章推荐
- 详解C语言用malloc函数申请二维动态数组的实例
- C语言用malloc函数申请二维动态数组
- C语言用malloc函数申请二维动态数组
- 数组(一维、二维、三维)的动态申请及用vector的表示方法
- 数组(一维、二维、三维)的动态申请及用vector的表示方法
- 关于两个用于创建和销毁二维动态数组的宏
- 数组(一维、二维、三维)的动态申请及用vector的表示方法
- 动态申请一维、二维、三维数组方法
- 《C++笔记》 Part8 一维、二维、三维数组的动态申请及用vector的表示方法
- 数组(一维、二维、三维)的动态申请及用vector 的表示方法
- 用vector<CStringArray>会报错;数组(一维、二维、三维)的动态申请及用vector的表示方法
- 数组(一维、二维、三维)的动态申请及用vector的表示方法
- 动态申请二维数组。
- excel vba真正的动态数组实例
- 关于动态数组指针操作的两个例子
- 关于动态申请二位数组的问题
- Glib实例学习(4)动态数组
- C语言如何动态申请空间(一维和二维)
- C/C++二维数组的动态分配及参数传递
- C语言构建动态数组完整实例