【C语言】二维数组:定义与传参

1、定义二维数组

1.1 直接定义:int a[1001][2]

int array[1001][2];

1.2 使用普通数组的指针

int (*array)[2]; // 定义一个指向有两个元素的数组的指针
array = malloc(1001 * sizeof(int[2])); // 动态分配大小为[1001][2]的内存

1.3 使用双重指针

int **array; // 定义一个二级指针
array = malloc(1001 * sizeof(int *)); // 为每一行分配指针
for (int i = 0; i < 1001; i++) {
    array[i] = malloc(2 * sizeof(int)); // 为每一行的列分配内存
}

2、二维数组传参

2.1 固定大小的二维数组作为参数

void myFunction(int array[1001][2]) {
    // 处理二维数组
}

void myFunction(int array[][2]) {
    // 处理二维数组
}

int array[1001][2];
myFunction(array); // 传递二维数组

2.2 使用指向数组的指针作为参数

void myFunction(int (*array)[2]) {
    // 处理二维数组
}

int array[1001][2];
myFunction(array); // 传递二维数组
相关推荐
时光の尘1 小时前
C语言菜鸟入门·关键字·void的用法
c语言·开发语言·c++·算法·c#·c·关键字
小林熬夜学编程1 小时前
【Linux系统编程】第四十九弹---日志系统构建指南:从基础结构到时间处理与Log类实现
linux·运维·服务器·c语言·开发语言·c++
折枝寄北1 小时前
C指针之舞——指针探秘之旅(2)
c语言·开发语言
陌小呆^O^2 小时前
关于C/C++Windows下连接MYSQL操作
c语言·c++·windows
小杨 学习日志9 小时前
C高级学习笔记
c语言·笔记·学习
DdddJMs__1359 小时前
C语言 | Leetcode C语言题解之第564题寻找最近的回文数
c语言·leetcode·题解
Peter_chq11 小时前
【计算机网络】HTTP协议
linux·c语言·开发语言·网络·c++·后端·网络协议
—Miss. Z—12 小时前
C语言中用指针输入字符串
c语言·字符串·指针
zhuzhuxia⌓‿⌓12 小时前
矩阵数组转置
c语言·算法
半桔14 小时前
(C语言)数据在内存中的储存
c语言·开发语言