【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); // 传递二维数组
相关推荐
Crazy learner23 分钟前
C 和 C++ 动态库的跨语言调用原理
c语言·c++
人才程序员6 小时前
QML z轴(z-order)前后层级
c语言·前端·c++·qt·软件工程·用户界面·界面
w(゚Д゚)w吓洗宝宝了6 小时前
C vs C++: 一场编程语言的演变与对比
c语言·开发语言·c++
爱吃西瓜的小菜鸡12 小时前
【C语言】抽空洗澡
c语言·开发语言·学习·算法
encoconut12 小时前
动态内存管理
c语言
人才程序员17 小时前
【无标题】
c语言·前端·c++·qt·软件工程·qml·界面
思麟呀19 小时前
在C语言基础上的C++第一章(基础的输入输出和动态内存开辟)
c语言·c++·学习
小林熬夜学编程21 小时前
【Linux网络编程】第十三弹---构建HTTP响应与请求处理系统:从HttpResponse到HttpServer的实战
linux·运维·服务器·c语言·网络·c++·http
misty youth1 天前
学生信息管理系统
c语言·数据结构·算法·c#
人才程序员1 天前
Qt Widgets、QML与Qt Quick
c语言·开发语言·c++·qt·ui·qml