将具有可变列数的二维数组传递给函数可以通过以下步骤实现:
下面是一个示例代码:
#include <stdio.h>
void processArray(int *arr, int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", *(arr + i * cols + j));
}
printf("\n");
}
}
int main() {
int arr[][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int rows = sizeof(arr) / sizeof(arr[0]);
int cols = sizeof(arr[0]) / sizeof(arr[0][0]);
processArray(&arr[0][0], rows, cols);
return 0;
}
在上面的示例中,processArray
函数接收一个指向整型的指针arr
,以及行数rows
和列数cols
作为参数。在main
函数中,我们定义了一个具有可变列数的二维数组arr
,并通过&arr[0][0]
将数组的地址传递给processArray
函数。在processArray
函数内部,使用指针算术运算来访问和打印二维数组的元素。
请注意,这只是一个示例,实际应用中可能需要根据具体情况进行调整。
领取专属 10元无门槛券
手把手带您无忧上云