gpt4 book ai didi

c - 矩阵作为 C 中函数的参数

转载 作者:太空宇宙 更新时间:2023-11-04 08:41:19 25 4
gpt4 key购买 nike

我被困在最基础的地方。这不是家庭作业,我只是以简单的方式呈现问题。

我需要一个矩阵打印函数,矩阵作为参数与行和列计数信息一起传递。矩阵分配在堆栈上。

在下面提到的函数原型(prototype)中,MAT_COL 是一个编译时定义。

void matrix_print(uint8_t (*mat)[MAT_COL], int row, int col)

并将矩阵元素打印为

print mat[i_row][i_col];

如果我有多个不同大小的矩阵,即“MAT_COL”不再可用,则该方法将不起作用。

一个可能的出路是

void matrix_print(uint8_t *in_mat, int row, int col)
{
uint8_t (*mat)[col] = in_mat; // typecast "col" is an arg
// access them as eariler
print mat[i_row][i_col];
}

这种方法有什么问题吗? C 中此问题的标准解决方案是什么。

最佳答案

C99支持以下函数声明方式:

void matrix_print(int row, int col, uint8_t in_mat[row][col])

关于c - 矩阵作为 C 中函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23425083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com