美文网首页
二维数组的内存申请

二维数组的内存申请

作者: 交大小丑 | 来源:发表于2020-06-30 09:07 被阅读0次

两种方法:

1.转化为一维数组申请

2.先申请全部行首指针,再按行逐行申请

1.

a=(int *)malloc(sizeof(int),(unsigned)m*n);

使用的时候就和一般的二维数组一样。

举个例子给你:

#include "stdlib.h"

#include "stdio.h"

#include <malloc.h>

int main()

{

int i,j;

int n;//这个就是需要指定的行数

int (*p)[10];

scanf("%d",&n);//取得行数

//动态生成二维数组,指定列数为10,如果想改,自己该里面

的参数,如果想定义n行2列就为: p=(int (*)[2])malloc(n*2*sizeof(int));

p=(int (*)[10])malloc(n*10*sizeof(int)); //动态申请n行10列的二维数组

for(i=0;i<n;i++)

for(j=0;j<10;j++)

p[i][j]=i*j;

for(i=0;i<n;i++)

{

for(j=0;j<10;j++)

printf("%d,",p[i][j]);

printf("\n");

}

free(p);

return 0;

}

2.

这个也给你举个例子吧:

#include <stdio.h>

#include <malloc.h>

main()

{

int i = 0;

int j = 0;

int line = 0;

int row = 0;

int **p = NULL;

printf("input the line of the array:\n");

scanf("%d", &line);

printf("input the row of the array:\n");

scanf("%d", &row);

p = (int **)malloc(sizeof(int *) * line);

搜索if (NULL == p)

{

return;

}

for (i = 0; i < line; i++)

{

*(p + i) = (int *)malloc(sizeof(int) * row);

if (NULL == *(p + i))

{

return;

}

}

/*input data*/

for (i = 0; i < line; i++)

{

for(j = 0; j < row; j++)

{

p[i][j] = i + 1;

}

}

/*output data*/

for (i = 0; i < line; i++)

{

for(j = 0; j < row; j++)

{

printf("%d", p[i][j]);

}

}

/*free every line point*/

for (i = 0; i < line; i++)

{

free(*(p + i));

p[i] = NULL;

}

free(p);

p = NULL;

}

相关文章

  • Java 二维数组格式、二维数组内存图解、二维数组操作

    二维数组格式1 格式1内存图解 二维数组格式2 二维数组格式2 内存图解 二维数组格式3 二维数组格式3 内存...

  • Java 二维数组格式、二维数组内存图解、二维数组操作

    二维数组格式1 格式1内存图解 二维数组格式2 二维数组格式2 内存图解 二维数组格式3 二维数组格式3 内存...

  • 二维数组

    二维数组格式1: 1.内存图解 二维数组格式2 二维数组格式2 内存图解 二维数组格式3 二维数组格式3 内存图解...

  • 二维数组的内存申请

    两种方法: 1.转化为一维数组申请 2.先申请全部行首指针,再按行逐行申请 1. a=(int *)malloc(...

  • Day08

    二维数组 二维数组格式 二维数组初始化 二维数组的遍历 二维数组内存存储细节 二维数组与函数注意点: 主要是看函数...

  • C语言的指针与数组(进阶篇之二)

    二、二维数组与指针 (1).二维数组元素在内存中的存放方式C语言中,二维数组元素值在内存中是线性的。跟一维数组相差...

  • 二维数组的创建及使用

    二维数组的创建 1.先声明,再用new运算符进行内存分配 语法 声明二维数组 为每一维数组分配内存 分别为每一维分...

  • C语言中的二维数组和指针

    二维数组 二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有“缝隙”。以下面...

  • 5.16课程小结

    今天的课程内容是对二维数组的学习,要注意二维数组的应用,理解二维数组在内存当中的存储方式。补充讲解了运算符,加强运...

  • 『数据结构与算法』—— 链表

    底层存储结构 与 数组 对比,数组需要一块 连续的内存空间 来存储,对内存要求很高。如果我们申请 50MB 的内存...

网友评论

      本文标题:二维数组的内存申请

      本文链接:https://www.haomeiwen.com/subject/iojtqktx.html