如果需要给函数传递一个二维数组,又不想在函数原型中给出第二维的长度,则可以考虑把数组直接传进去,形参用void *
接收。在函数内可以把形参指针转换成其他类型。
下面给出一个例子,函数func接收一个二维数组,在函数内转换成一维数组进行逆序处理。
#include <stdio.h>
#include <malloc.h>
#define ROW 4
#define COL 4
void func(void *a)
{
int *arr = (int *)a;
int temp;
for (int i = 0; i < ROW * COL / 2; i++)
{
temp = arr[i];