【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); // 传递二维数组
相关推荐
yanqiaofanhua3 小时前
C语言自学--数据在内存中的存储
c语言·开发语言
学不动CV了8 小时前
FreeRTOS---任务级和中断级临界区管理使用的理解与源码分析
c语言·arm开发·stm32·单片机·嵌入式硬件·51单片机
10001hours9 小时前
C语言第21讲
c语言·开发语言
GilgameshJSS10 小时前
STM32H743-ARM例程10-WWDG
c语言·arm开发·stm32·单片机·嵌入式硬件
“愿你如星辰如月”12 小时前
Linux C缓冲区机制全解析
linux·运维·服务器·c语言·vscode
自信1504130575913 小时前
初学者小白复盘11之——指针(1)
c语言
@卞16 小时前
第十六届蓝桥杯软件赛C组省赛C++题解(京津冀)
c语言·c++·蓝桥杯
超级大只老咪19 小时前
编程竞赛高频考点
java·c语言·开发语言·c++·python
Nix Lockhart20 小时前
《算法与数据结构》第七章[第1节]:图
c语言·数据结构·学习·算法
高山有多高21 小时前
C语言实战项目:贪吃蛇(1)
c语言·开发语言·数据结构·c++·算法·游戏