【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); // 传递二维数组
相关推荐
DARLING Zero two♡1 小时前
【初阶数据结构】逆流的回环链桥:双链表
c语言·数据结构·c++·链表·双链表
9毫米的幻想1 小时前
【Linux系统】—— 编译器 gcc/g++ 的使用
linux·运维·服务器·c语言·c++
时时三省3 小时前
【时时三省】(C语言基础)文件的顺序读写
c语言
graceyun3 小时前
C语言进阶习题【1】指针和数组(4)——指针笔试题3
android·java·c语言
快乐飒男9 小时前
面试题目1
c语言
小猿_0010 小时前
C语言程序设计十大排序—插入排序
c语言·算法·排序算法
siy233314 小时前
[c语言日寄]结构体的使用及其拓展
c语言·开发语言·笔记·学习·算法
安和昂15 小时前
effective Objective—C 第三章笔记
java·c语言·笔记
四念处茫茫15 小时前
【C语言系列】深入理解指针(2)
c语言·开发语言·visual studio
LucianaiB15 小时前
C语言之图像文件的属性
c语言·开发语言·microsoft·c语言之图像文件的属性