要将一个 int [5] [5]
类型的变量传递给需要 int **
类型的函数,您需要首先将数组转换为指针。以下是一个示例:
#include<stdio.h>
void print_matrix(int **matrix, int rows, int cols) {
for (int i = 0; i< rows; i++) {
for (int j = 0; j< cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int matrix[5][5] = {
{1, 2, 3, 4, 5},
{6, 7, 8, 9, 10},
{11, 12, 13, 14, 15},
{16, 17, 18, 19, 20},
{21, 22, 23, 24, 25}
};
int (*ptr_matrix)[5] = matrix;
int **converted_matrix = (int **)ptr_matrix;
print_matrix(converted_matrix, 5, 5);
return 0;
}
在这个示例中,我们首先定义了一个 int [5] [5]
类型的矩阵,并将其传递给 print_matrix
函数。然后,我们将矩阵转换为指针,并将其传递给 print_matrix
函数。这样,我们就可以将 int [5] [5]
类型的变量传递给需要 int **
类型的函数了。
需要注意的是,这种转换可能会导致数据对齐问题,因此在使用时需要小心。
领取专属 10元无门槛券
手把手带您无忧上云