这个问题在这里已经有了答案:
How to pass a 2D array by pointer in C?
(4 个回答)
去年关闭。
void print_first_n_row(double **matrix, int n, int row_size) {
double (*abc)[row_size];
abc=matrix;}
我从不兼容的指针类型 [-Wincompatible-pointer-types] 分配
abc=矩阵错误。我该如何解决这个问题?
最佳答案
矩阵是 abstract data type .如何实现它是一个实现细节。
在 this我详细说明了如何在 C 中实现这样的类型。
C 中并不真正存在多维数组。 C 只有数组数组,或指针数组 - 或其他类型,包括标量数组。通过阅读查看 n1570 (C11 标准)。
I am having assignment from incompatible pointer type [-Wincompatible-pointer-types] abc=matrix error. How can I solve this?
要么用抽象数据类型术语思考,要么阅读更多关于 C dynamic memory allocation 的信息。 (考虑使用 flexible array members )和关于 C programming language .
您可以在 github 上找到许多与矩阵相关的源代码示例。或 gitlab和其他地方。
关于c - 在函数中通过指向多维数组的指针分配指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61635216/