C语言程序动态创建二维数组 您所在的位置:网站首页 new创建二维数组 C语言程序动态创建二维数组

C语言程序动态创建二维数组

2023-03-27 06:02| 来源: 网络整理| 查看: 265

在本文中,你将学会使用C语言通过多种方法实现二维数组;其中包含为二维数组指针动态的分配内存、释放内存;

方法1

该方法实现二维数组比较简单;内存分配到栈段,内存的分配和释放由编译器完成;缺点是栈段的容量有限,不能使用此方法创建大的二维数组,且数组的大小需要在程序编译时就定义好;

#include int main() { int map[10][5]; //10*5的二维数组 int value = 0; for(int row = 0; row < 10; row++) { for(int col = 0; col < 5; col++) { map[row][col] = value; //赋值 printf(" %d", map[row][col]);//访问值 value++; } printf("\n"); } }

程序1运行效果

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 方法2

通过定义一个二维数组指针,动态的申请内存;该方法需要你自行申请内存和释放内存,因为使用的是堆段的内存,所以能存储大量数据,具体取决于操作系统;且数组大小可在申请内存前定义;

该方法用到malloc()和free()这两个函数,需要使用"stdlib.h"头文件;

#include int main() { int** map; int height = 1024; int length = 768; //分配内存 map = (int**)malloc(sizeof(int*) * height); for (int i = 0; i < height; i++) { map[i] = (int*)malloc(sizeof(int) * length); } if (map == NULL) { //内存申请失败 return 1; } //将数组用0填充 for (int row = 0; row < height; row++) { for (int col= 0; col < length; col++) { map[row][col] = 0; } } //释放内存 for (int i = 0; i < height; i++) { free(map[i]); } free(map); }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有