【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); // 传递二维数组
相关推荐
梁下轻语的秋缘7 分钟前
每日c/c++题 备战蓝桥杯(洛谷P1115 最大子段和)
c语言·c++·蓝桥杯
C_Liu_1 小时前
C语言:深入理解指针(3)
c语言·数据结构·算法
南玖yy2 小时前
C/C++ 内存管理深度解析:从内存分布到实践应用(malloc和new,free和delete的对比与使用,定位 new )
c语言·开发语言·c++·笔记·后端·游戏引擎·课程设计
刃神太酷啦3 小时前
类和对象(1)--《Hello C++ Wrold!》(3)--(C/C++)
java·c语言·c++·git·算法·leetcode·github
HY小海4 小时前
【数据结构】双链表
c语言·开发语言·数据结构·学习
真的想上岸啊4 小时前
c语言第一个小游戏:贪吃蛇小游戏03
c语言·开发语言·算法
小狗祈祷诗5 小时前
day18-数据结构引言
c语言·数据结构
真的想上岸啊5 小时前
c语言第一个小游戏:贪吃蛇小游戏01
c语言·开发语言
序属秋秋秋5 小时前
《数据结构初阶》【堆 + 堆排序 + TOP-K】
c语言·数据结构·c++·笔记