【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); // 传递二维数组
相关推荐
智者知已应修善业2 分钟前
【字符串提取3个整数求和】2024-2-11
c语言·c++·经验分享·笔记·算法
晚秋大魔王8 分钟前
C语言-宏的基础、进阶、高级、内置宏的用法
c语言·开发语言·
进阶的猪30 分钟前
stm32 GPIO输出-使用固件库点亮LED灯 Q&A
c语言·笔记·stm32·单片机
秦苒&1 小时前
【C语言】详解数据类型和变量(二):三种操作符(算数、赋值、单目)及printf
c语言·开发语言·c++·c#
无限进步_1 小时前
【C语言&数据结构】有效的括号:栈数据结构的经典应用
c语言·开发语言·数据结构·c++·git·github·visual studio
零K沁雪1 小时前
multipart-parser-c 使用方式
c语言·开发语言
飞天遇见妞1 小时前
C/C++中宏定义的使用
c语言·开发语言·c++
雨落在了我的手上1 小时前
C语言入门(三十二):预处理详解(2)
c语言·开发语言
一雨方知深秋2 小时前
数组定义及访问
java·数组·二维数组·for·length·定义访问
黎雁·泠崖2 小时前
C 语言指针精讲:数组与指针深度绑定 + 二级指针 + 指针数组全解析
c语言·开发语言