• c中使用malloc动态申请二维数组


    前言

    今天写代码的时候,想要动态的申请一个二维数组空间,思索了一段时间才写出来,这里记录一下吧,以后就不至于再浪费时间了。下面以申请int型数组作为例子:

    申请一维数组

    一维数组的数组名可以看成数组起始元素的首地址,因此我定义一个int *arr的指针,分配n个大小的int型空间,写法如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void)
    {
    	int n, *arr;
    
    	while (scanf("%d", &n) != EOF) {
    		arr = (int *)malloc(sizeof(int) * n);
    	}
    
    	return 0;
    }

    申请二维数组

    二维数组的数组名是其所有一维数组的首地址,因为二维数组的数组名是指针的指针,因为我定义一个row行column列的二维数组,写法如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void)
    {
    	int i, row, column, **arr;
    
    	while (scanf("%d %d", &row, &column) != EOF) {
    		arr = (int **)malloc(sizeof(int *) * row); // 分配所有行的首地址
    		for (i = 0; i < row; i ++) { // 按行分配每一列
    			arr[i] = (int *)malloc(sizeof(int) * column);	
    		}
    
    		free(arr);
    	}
    
    	return 0;
    }

    后记

    没什没技术含量,单纯是为了总结一下,毕竟当时想了能有15分钟的样子!
  • 相关阅读:
    Linux下chmod 777 修改权限
    设计模式
    oracle连接出错的解决方法
    JSON简介
    Kafka安装部署
    磁盘挂载及文件系统初始化
    ES Templates push
    常用脚本
    RocketMQ 零拷贝
    kafka Py客户端
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3146826.html
Copyright © 2020-2023  润新知